cregit-Linux how code gets into the kernel

Release 4.14 arch/alpha/include/asm/pgalloc.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ALPHA_PGALLOC_H

#define _ALPHA_PGALLOC_H

#include <linux/mm.h>
#include <linux/mmzone.h>

/*      
 * Allocate and free page tables. The xxx_kernel() versions are
 * used to allocate a kernel page table - this turns on ASN bits
 * if any.
 */


static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte) { pmd_set(pmd, (pte_t *)(page_to_pa(pte) + PAGE_OFFSET)); }

Contributors

PersonTokensPropCommitsCommitProp
Richard Henderson1540.54%116.67%
Linus Torvalds (pre-git)924.32%116.67%
Linus Torvalds616.22%116.67%
Ivan Kokshaysky38.11%116.67%
Al Viro38.11%116.67%
Martin Schwidefsky12.70%116.67%
Total37100.00%6100.00%

#define pmd_pgtable(pmd) pmd_page(pmd)
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) { pmd_set(pmd, pte); }

Contributors

PersonTokensPropCommitsCommitProp
Richard Henderson1348.15%133.33%
Linus Torvalds (pre-git)829.63%133.33%
Linus Torvalds622.22%133.33%
Total27100.00%3100.00%


static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd) { pgd_set(pgd, pmd); }

Contributors

PersonTokensPropCommitsCommitProp
Richard Henderson1555.56%133.33%
Linus Torvalds (pre-git)1244.44%266.67%
Total27100.00%3100.00%

extern pgd_t *pgd_alloc(struct mm_struct *mm);
static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) { free_page((unsigned long)pgd); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)1664.00%250.00%
Benjamin Herrenschmidt520.00%125.00%
Richard Henderson416.00%125.00%
Total25100.00%4100.00%


static inline pmd_t * pmd_alloc_one(struct mm_struct *mm, unsigned long address) { pmd_t *ret = (pmd_t *)__get_free_page(GFP_KERNEL|__GFP_ZERO); return ret; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds2057.14%120.00%
Linus Torvalds (pre-git)720.00%120.00%
Richard Henderson617.14%120.00%
Christoph Lameter12.86%120.00%
Andrew Morton12.86%120.00%
Total35100.00%5100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)1144.00%240.00%
Richard Henderson832.00%120.00%
Benjamin Herrenschmidt520.00%120.00%
Linus Torvalds14.00%120.00%
Total25100.00%5100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
Ivan Kokshaysky2365.71%150.00%
Richard Henderson1234.29%150.00%
Total35100.00%2100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)1664.00%250.00%
Benjamin Herrenschmidt520.00%125.00%
Richard Henderson416.00%125.00%
Total25100.00%4100.00%


static inline pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address) { pte_t *pte = pte_alloc_one_kernel(mm, address); struct page *page; if (!pte) return NULL; page = virt_to_page(pte); if (!pgtable_page_ctor(page)) { __free_page(page); return NULL; } return page; }

Contributors

PersonTokensPropCommitsCommitProp
Martin Schwidefsky2029.41%116.67%
Andrew Morton1522.06%116.67%
Kirill A. Shutemov1319.12%116.67%
Richard Henderson1217.65%116.67%
Linus Torvalds (pre-git)811.76%233.33%
Total68100.00%6100.00%


static inline void pte_free(struct mm_struct *mm, pgtable_t page) { pgtable_page_dtor(page); __free_page(page); }

Contributors

PersonTokensPropCommitsCommitProp
Richard Henderson1248.00%125.00%
Martin Schwidefsky624.00%125.00%
Benjamin Herrenschmidt416.00%125.00%
Linus Torvalds (pre-git)312.00%125.00%
Total25100.00%4100.00%

#define check_pgt_cache() do { } while (0) #endif /* _ALPHA_PGALLOC_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Richard Henderson11731.71%212.50%
Linus Torvalds (pre-git)10227.64%212.50%
Martin Schwidefsky349.21%16.25%
Linus Torvalds338.94%16.25%
Ivan Kokshaysky308.13%318.75%
Benjamin Herrenschmidt195.15%16.25%
Andrew Morton164.34%212.50%
Kirill A. Shutemov133.52%16.25%
Al Viro30.81%16.25%
Greg Kroah-Hartman10.27%16.25%
Christoph Lameter10.27%16.25%
Total369100.00%16100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.