mm: convert generic code to 5-level paging
Convert all non-architecture-specific code to 5-level paging. It's mostly mechanical adding handling one more page table level in places where we deal with pud_t. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Acked-by: Michal Hocko <mhocko@suse.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
048456dcf2
commit
c2febafc67
@@ -128,19 +128,22 @@ out_unlock:
|
||||
static pmd_t *mm_alloc_pmd(struct mm_struct *mm, unsigned long address)
|
||||
{
|
||||
pgd_t *pgd;
|
||||
p4d_t *p4d;
|
||||
pud_t *pud;
|
||||
pmd_t *pmd = NULL;
|
||||
|
||||
pgd = pgd_offset(mm, address);
|
||||
pud = pud_alloc(mm, pgd, address);
|
||||
if (pud)
|
||||
/*
|
||||
* Note that we didn't run this because the pmd was
|
||||
* missing, the *pmd may be already established and in
|
||||
* turn it may also be a trans_huge_pmd.
|
||||
*/
|
||||
pmd = pmd_alloc(mm, pud, address);
|
||||
return pmd;
|
||||
p4d = p4d_alloc(mm, pgd, address);
|
||||
if (!p4d)
|
||||
return NULL;
|
||||
pud = pud_alloc(mm, p4d, address);
|
||||
if (!pud)
|
||||
return NULL;
|
||||
/*
|
||||
* Note that we didn't run this because the pmd was
|
||||
* missing, the *pmd may be already established and in
|
||||
* turn it may also be a trans_huge_pmd.
|
||||
*/
|
||||
return pmd_alloc(mm, pud, address);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HUGETLB_PAGE
|
||||
|
Reference in New Issue
Block a user