cregit-Linux how code gets into the kernel

Release 4.10 arch/mips/include/asm/pgalloc.h

/*
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 *
 * Copyright (C) 1994 - 2001, 2003 by Ralf Baechle
 * Copyright (C) 1999, 2000, 2001 Silicon Graphics, Inc.
 */
#ifndef _ASM_PGALLOC_H

#define _ASM_PGALLOC_H

#include <linux/highmem.h>
#include <linux/mm.h>
#include <linux/sched.h>


static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) { set_pmd(pmd, __pmd((unsigned long)pte)); }

Contributors

PersonTokensPropCommitsCommitProp
ralf baechleralf baechle2470.59%266.67%
pre-gitpre-git1029.41%133.33%
Total34100.00%3100.00%


static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte) { set_pmd(pmd, __pmd((unsigned long)page_address(pte))); }

Contributors

PersonTokensPropCommitsCommitProp
ralf baechleralf baechle2466.67%250.00%
pre-gitpre-git1130.56%125.00%
martin schwidefskymartin schwidefsky12.78%125.00%
Total36100.00%4100.00%

#define pmd_pgtable(pmd) pmd_page(pmd) /* * Initialize a new pmd table with invalid pointers. */ extern void pmd_init(unsigned long page, unsigned long pagetable); #ifndef __PAGETABLE_PMD_FOLDED
static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) { set_pud(pud, __pud((unsigned long)pmd)); }

Contributors

PersonTokensPropCommitsCommitProp
ralf baechleralf baechle34100.00%1100.00%
Total34100.00%1100.00%

#endif /* * Initialize a new pgd / pmd table with invalid pointers. */ extern void pgd_init(unsigned long page);
static inline pgd_t *pgd_alloc(struct mm_struct *mm) { pgd_t *ret, *init; ret = (pgd_t *) __get_free_pages(GFP_KERNEL, PGD_ORDER); if (ret) { init = pgd_offset(&init_mm, 0UL); pgd_init((unsigned long)ret); memcpy(ret + USER_PTRS_PER_PGD, init + USER_PTRS_PER_PGD, (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t)); } return ret; }

Contributors

PersonTokensPropCommitsCommitProp
ralf baechleralf baechle5566.27%375.00%
pre-gitpre-git2833.73%125.00%
Total83100.00%4100.00%


static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) { free_pages((unsigned long)pgd, PGD_ORDER); }

Contributors

PersonTokensPropCommitsCommitProp
pre-gitpre-git1348.15%133.33%
ralf baechleralf baechle933.33%133.33%
benjamin herrenschmidtbenjamin herrenschmidt518.52%133.33%
Total27100.00%3100.00%


static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) { return (pte_t *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, PTE_ORDER); }

Contributors

PersonTokensPropCommitsCommitProp
pre-gitpre-git1754.84%114.29%
linus torvaldslinus torvalds722.58%114.29%
ralf baechleralf baechle412.90%228.57%
christoph lameterchristoph lameter13.23%114.29%
masahiro yamadamasahiro yamada13.23%114.29%
andrew mortonandrew morton13.23%114.29%
Total31100.00%7100.00%


static inline struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) { struct page *pte; pte = alloc_pages(GFP_KERNEL, PTE_ORDER); if (!pte) return NULL; clear_highpage(pte); if (!pgtable_page_ctor(pte)) { __free_page(pte); return NULL; } return pte; }

Contributors

PersonTokensPropCommitsCommitProp
ralf baechleralf baechle2233.33%233.33%
kirill a. shutemovkirill a. shutemov1624.24%116.67%
pre-gitpre-git1624.24%116.67%
martin schwidefskymartin schwidefsky69.09%116.67%
linus torvaldslinus torvalds69.09%116.67%
Total66100.00%6100.00%


static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) { free_pages((unsigned long)pte, PTE_ORDER); }

Contributors

PersonTokensPropCommitsCommitProp
linus torvaldslinus torvalds1037.04%120.00%
ralf baechleralf baechle829.63%240.00%
benjamin herrenschmidtbenjamin herrenschmidt518.52%120.00%
pre-gitpre-git414.81%120.00%
Total27100.00%5100.00%


static inline void pte_free(struct mm_struct *mm, pgtable_t pte) { pgtable_page_dtor(pte); __free_pages(pte, PTE_ORDER); }

Contributors

PersonTokensPropCommitsCommitProp
ralf baechleralf baechle725.93%233.33%
martin schwidefskymartin schwidefsky622.22%116.67%
linus torvaldslinus torvalds622.22%116.67%
pre-gitpre-git414.81%116.67%
benjamin herrenschmidtbenjamin herrenschmidt414.81%116.67%
Total27100.00%6100.00%

#define __pte_free_tlb(tlb,pte,address) \ do { \ pgtable_page_dtor(pte); \ tlb_remove_page((tlb), pte); \ } while (0) #ifndef __PAGETABLE_PMD_FOLDED
static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address) { pmd_t *pmd; pmd = (pmd_t *) __get_free_pages(GFP_KERNEL, PMD_ORDER); if (pmd) pmd_init((unsigned long)pmd, (unsigned long)invalid_pte_table); return pmd; }

Contributors

PersonTokensPropCommitsCommitProp
ralf baechleralf baechle56100.00%1100.00%
Total56100.00%1100.00%


static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) { free_pages((unsigned long)pmd, PMD_ORDER); }

Contributors

PersonTokensPropCommitsCommitProp
ralf baechleralf baechle2281.48%150.00%
benjamin herrenschmidtbenjamin herrenschmidt518.52%150.00%
Total27100.00%2100.00%

#define __pmd_free_tlb(tlb, x, addr) pmd_free((tlb)->mm, x) #endif #define check_pgt_cache() do { } while (0) extern void pagetable_init(void); #endif /* _ASM_PGALLOC_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
ralf baechleralf baechle29854.88%422.22%
pre-gitpre-git11621.36%211.11%
linus torvaldslinus torvalds407.37%15.56%
benjamin herrenschmidtbenjamin herrenschmidt244.42%211.11%
martin schwidefskymartin schwidefsky224.05%15.56%
kirill a. shutemovkirill a. shutemov162.95%15.56%
andrew mortonandrew morton91.66%211.11%
atsushi nemotoatsushi nemoto71.29%15.56%
david daneydavid daney61.10%15.56%
alexey dobriyanalexey dobriyan30.55%15.56%
masahiro yamadamasahiro yamada10.18%15.56%
christoph lameterchristoph lameter10.18%15.56%
Total543100.00%18100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.