Lines Matching refs:pud

330 	pud_t *pud;  in lookup_address_in_pgd()  local
338 pud = pud_offset(pgd, address); in lookup_address_in_pgd()
339 if (pud_none(*pud)) in lookup_address_in_pgd()
343 if (pud_large(*pud) || !pud_present(*pud)) in lookup_address_in_pgd()
344 return (pte_t *)pud; in lookup_address_in_pgd()
346 pmd = pmd_offset(pud, address); in lookup_address_in_pgd()
390 pud_t *pud; in lookup_pmd_address() local
396 pud = pud_offset(pgd, address); in lookup_pmd_address()
397 if (pud_none(*pud) || pud_large(*pud) || !pud_present(*pud)) in lookup_pmd_address()
400 return pmd_offset(pud, address); in lookup_pmd_address()
461 pud_t *pud; in __set_pmd_pte() local
465 pud = pud_offset(pgd, address); in __set_pmd_pte()
466 pmd = pmd_offset(pud, address); in __set_pmd_pte()
750 static bool try_to_free_pud_page(pud_t *pud) in try_to_free_pud_page() argument
755 if (!pud_none(pud[i])) in try_to_free_pud_page()
758 free_page((unsigned long)pud); in try_to_free_pud_page()
780 static void __unmap_pmd_range(pud_t *pud, pmd_t *pmd, in __unmap_pmd_range() argument
784 if (try_to_free_pmd_page((pmd_t *)pud_page_vaddr(*pud))) in __unmap_pmd_range()
785 pud_clear(pud); in __unmap_pmd_range()
788 static void unmap_pmd_range(pud_t *pud, unsigned long start, unsigned long end) in unmap_pmd_range() argument
790 pmd_t *pmd = pmd_offset(pud, start); in unmap_pmd_range()
799 __unmap_pmd_range(pud, pmd, start, pre_end); in unmap_pmd_range()
812 __unmap_pmd_range(pud, pmd, start, start + PMD_SIZE); in unmap_pmd_range()
822 return __unmap_pmd_range(pud, pmd, start, end); in unmap_pmd_range()
827 if (!pud_none(*pud)) in unmap_pmd_range()
828 if (try_to_free_pmd_page((pmd_t *)pud_page_vaddr(*pud))) in unmap_pmd_range()
829 pud_clear(pud); in unmap_pmd_range()
834 pud_t *pud = pud_offset(pgd, start); in unmap_pud_range() local
843 unmap_pmd_range(pud, start, pre_end); in unmap_pud_range()
846 pud++; in unmap_pud_range()
854 if (pud_large(*pud)) in unmap_pud_range()
855 pud_clear(pud); in unmap_pud_range()
857 unmap_pmd_range(pud, start, start + PUD_SIZE); in unmap_pud_range()
860 pud++; in unmap_pud_range()
867 unmap_pmd_range(pud, start, end); in unmap_pud_range()
895 static int alloc_pmd_page(pud_t *pud) in alloc_pmd_page() argument
901 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE)); in alloc_pmd_page()
929 unsigned num_pages, pud_t *pud, pgprot_t pgprot) in populate_pmd() argument
949 pmd = pmd_offset(pud, start); in populate_pmd()
972 if (pud_none(*pud)) in populate_pmd()
973 if (alloc_pmd_page(pud)) in populate_pmd()
976 pmd = pmd_offset(pud, start); in populate_pmd()
990 pmd = pmd_offset(pud, start); in populate_pmd()
1004 pud_t *pud; in populate_pud() local
1023 pud = pud_offset(pgd, start); in populate_pud()
1028 if (pud_none(*pud)) in populate_pud()
1029 if (alloc_pmd_page(pud)) in populate_pud()
1033 pud, pgprot); in populate_pud()
1044 pud = pud_offset(pgd, start); in populate_pud()
1051 set_pud(pud, __pud(cpa->pfn | _PAGE_PSE | in populate_pud()
1057 pud++; in populate_pud()
1064 pud = pud_offset(pgd, start); in populate_pud()
1065 if (pud_none(*pud)) in populate_pud()
1066 if (alloc_pmd_page(pud)) in populate_pud()
1070 pud, pgprot); in populate_pud()
1086 pud_t *pud = NULL; /* shut up gcc */ in populate_pgd() local
1096 pud = (pud_t *)get_zeroed_page(GFP_KERNEL | __GFP_NOTRACK); in populate_pgd()
1097 if (!pud) in populate_pgd()
1100 set_pgd(pgd_entry, __pgd(__pa(pud) | _KERNPG_TABLE)); in populate_pgd()