Lines Matching refs:pud

331 	pud_t *pud;  in lookup_address_in_pgd()  local
339 pud = pud_offset(pgd, address); in lookup_address_in_pgd()
340 if (pud_none(*pud)) in lookup_address_in_pgd()
344 if (pud_large(*pud) || !pud_present(*pud)) in lookup_address_in_pgd()
345 return (pte_t *)pud; in lookup_address_in_pgd()
347 pmd = pmd_offset(pud, address); in lookup_address_in_pgd()
391 pud_t *pud; in lookup_pmd_address() local
397 pud = pud_offset(pgd, address); in lookup_pmd_address()
398 if (pud_none(*pud) || pud_large(*pud) || !pud_present(*pud)) in lookup_pmd_address()
401 return pmd_offset(pud, address); in lookup_pmd_address()
448 pud_t *pud; in __set_pmd_pte() local
452 pud = pud_offset(pgd, address); in __set_pmd_pte()
453 pmd = pmd_offset(pud, address); in __set_pmd_pte()
723 static bool try_to_free_pud_page(pud_t *pud) in try_to_free_pud_page() argument
728 if (!pud_none(pud[i])) in try_to_free_pud_page()
731 free_page((unsigned long)pud); in try_to_free_pud_page()
753 static void __unmap_pmd_range(pud_t *pud, pmd_t *pmd, in __unmap_pmd_range() argument
757 if (try_to_free_pmd_page((pmd_t *)pud_page_vaddr(*pud))) in __unmap_pmd_range()
758 pud_clear(pud); in __unmap_pmd_range()
761 static void unmap_pmd_range(pud_t *pud, unsigned long start, unsigned long end) in unmap_pmd_range() argument
763 pmd_t *pmd = pmd_offset(pud, start); in unmap_pmd_range()
772 __unmap_pmd_range(pud, pmd, start, pre_end); in unmap_pmd_range()
785 __unmap_pmd_range(pud, pmd, start, start + PMD_SIZE); in unmap_pmd_range()
795 return __unmap_pmd_range(pud, pmd, start, end); in unmap_pmd_range()
800 if (!pud_none(*pud)) in unmap_pmd_range()
801 if (try_to_free_pmd_page((pmd_t *)pud_page_vaddr(*pud))) in unmap_pmd_range()
802 pud_clear(pud); in unmap_pmd_range()
807 pud_t *pud = pud_offset(pgd, start); in unmap_pud_range() local
816 unmap_pmd_range(pud, start, pre_end); in unmap_pud_range()
819 pud++; in unmap_pud_range()
827 if (pud_large(*pud)) in unmap_pud_range()
828 pud_clear(pud); in unmap_pud_range()
830 unmap_pmd_range(pud, start, start + PUD_SIZE); in unmap_pud_range()
833 pud++; in unmap_pud_range()
840 unmap_pmd_range(pud, start, end); in unmap_pud_range()
868 static int alloc_pmd_page(pud_t *pud) in alloc_pmd_page() argument
874 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE)); in alloc_pmd_page()
902 unsigned num_pages, pud_t *pud, pgprot_t pgprot) in populate_pmd() argument
922 pmd = pmd_offset(pud, start); in populate_pmd()
945 if (pud_none(*pud)) in populate_pmd()
946 if (alloc_pmd_page(pud)) in populate_pmd()
949 pmd = pmd_offset(pud, start); in populate_pmd()
963 pmd = pmd_offset(pud, start); in populate_pmd()
977 pud_t *pud; in populate_pud() local
996 pud = pud_offset(pgd, start); in populate_pud()
1001 if (pud_none(*pud)) in populate_pud()
1002 if (alloc_pmd_page(pud)) in populate_pud()
1006 pud, pgprot); in populate_pud()
1017 pud = pud_offset(pgd, start); in populate_pud()
1024 set_pud(pud, __pud(cpa->pfn | _PAGE_PSE | in populate_pud()
1030 pud++; in populate_pud()
1037 pud = pud_offset(pgd, start); in populate_pud()
1038 if (pud_none(*pud)) in populate_pud()
1039 if (alloc_pmd_page(pud)) in populate_pud()
1043 pud, pgprot); in populate_pud()
1059 pud_t *pud = NULL; /* shut up gcc */ in populate_pgd() local
1069 pud = (pud_t *)get_zeroed_page(GFP_KERNEL | __GFP_NOTRACK); in populate_pgd()
1070 if (!pud) in populate_pgd()
1073 set_pgd(pgd_entry, __pgd(__pa(pud) | _KERNPG_TABLE)); in populate_pgd()