cregit-Linux how code gets into the kernel

Release 4.7 arch/sh/include/asm/pgalloc.h

#ifndef __ASM_SH_PGALLOC_H

#define __ASM_SH_PGALLOC_H

#include <linux/quicklist.h>
#include <asm/page.h>


#define QUICK_PT 0	
/* Other page table pages that are zero on free */

extern pgd_t *pgd_alloc(struct mm_struct *);
extern void pgd_free(struct mm_struct *mm, pgd_t *pgd);

#if PAGETABLE_LEVELS > 2
extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
extern pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address);
extern void pmd_free(struct mm_struct *mm, pmd_t *pmd);
#endif


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
stuart menefystuart menefy2676.47%133.33%
linus torvaldslinus torvalds720.59%133.33%
paul mundtpaul mundt12.94%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
paul mundtpaul mundt3083.33%133.33%
stuart menefystuart menefy513.89%133.33%
martin schwidefskymartin schwidefsky12.78%133.33%
Total36100.00%3100.00%

#define pmd_pgtable(pmd) pmd_page(pmd) /* * Allocate and free page tables. */
static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) { return quicklist_alloc(QUICK_PT, GFP_KERNEL, NULL); }

Contributors

PersonTokensPropCommitsCommitProp
linus torvaldslinus torvalds1244.44%120.00%
pre-gitpre-git829.63%120.00%
paul mundtpaul mundt725.93%360.00%
Total27100.00%5100.00%


static inline pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address) { struct page *page; void *pg; pg = quicklist_alloc(QUICK_PT, GFP_KERNEL, NULL); if (!pg) return NULL; page = virt_to_page(pg); if (!pgtable_page_ctor(page)) { quicklist_free(QUICK_PT, NULL, pg); return NULL; } return page; }

Contributors

PersonTokensPropCommitsCommitProp
martin schwidefskymartin schwidefsky2735.53%114.29%
kirill a. shutemovkirill a. shutemov1722.37%114.29%
paul mundtpaul mundt1722.37%228.57%
linus torvaldslinus torvalds911.84%114.29%
pre-gitpre-git67.89%228.57%
Total76100.00%7100.00%


static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) { quicklist_free(QUICK_PT, NULL, pte); }

Contributors

PersonTokensPropCommitsCommitProp
pre-gitpre-git1352.00%233.33%
paul mundtpaul mundt624.00%233.33%
benjamin herrenschmidtbenjamin herrenschmidt520.00%116.67%
linus torvaldslinus torvalds14.00%116.67%
Total25100.00%6100.00%


static inline void pte_free(struct mm_struct *mm, pgtable_t pte) { pgtable_page_dtor(pte); quicklist_free_page(QUICK_PT, NULL, pte); }

Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt1448.28%228.57%
martin schwidefskymartin schwidefsky620.69%114.29%
pre-gitpre-git413.79%228.57%
benjamin herrenschmidtbenjamin herrenschmidt413.79%114.29%
linus torvaldslinus torvalds13.45%114.29%
Total29100.00%7100.00%

#define __pte_free_tlb(tlb,pte,addr) \ do { \ pgtable_page_dtor(pte); \ tlb_remove_page((tlb), (pte)); \ } while (0)
static inline void check_pgt_cache(void) { quicklist_trim(QUICK_PT, NULL, 25, 16); }

Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt1995.00%150.00%
andrew mortonandrew morton15.00%150.00%
Total20100.00%2100.00%

#endif /* __ASM_SH_PGALLOC_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt11431.23%529.41%
matt flemingmatt fleming7320.00%211.76%
martin schwidefskymartin schwidefsky4311.78%15.88%
pre-gitpre-git4010.96%211.76%
linus torvaldslinus torvalds359.59%211.76%
stuart menefystuart menefy318.49%15.88%
kirill a. shutemovkirill a. shutemov174.66%15.88%
benjamin herrenschmidtbenjamin herrenschmidt113.01%211.76%
andrew mortonandrew morton10.27%15.88%
Total365100.00%17100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}