Lines Matching refs:address
252 static inline pgprot_t static_protections(pgprot_t prot, unsigned long address, in static_protections() argument
271 if (within(address, (unsigned long)_text, (unsigned long)_etext)) in static_protections()
293 within(address, (unsigned long)_text, in static_protections()
314 if (lookup_address(address, &level) && (level != PG_LEVEL_4K)) in static_protections()
328 pte_t *lookup_address_in_pgd(pgd_t *pgd, unsigned long address, in lookup_address_in_pgd() argument
339 pud = pud_offset(pgd, address); in lookup_address_in_pgd()
347 pmd = pmd_offset(pud, address); in lookup_address_in_pgd()
357 return pte_offset_kernel(pmd, address); in lookup_address_in_pgd()
368 pte_t *lookup_address(unsigned long address, unsigned int *level) in lookup_address() argument
370 return lookup_address_in_pgd(pgd_offset_k(address), address, level); in lookup_address()
374 static pte_t *_lookup_address_cpa(struct cpa_data *cpa, unsigned long address, in _lookup_address_cpa() argument
378 return lookup_address_in_pgd(cpa->pgd + pgd_index(address), in _lookup_address_cpa()
379 address, level); in _lookup_address_cpa()
381 return lookup_address(address, level); in _lookup_address_cpa()
388 pmd_t *lookup_pmd_address(unsigned long address) in lookup_pmd_address() argument
393 pgd = pgd_offset_k(address); in lookup_pmd_address()
397 pud = pud_offset(pgd, address); in lookup_pmd_address()
401 return pmd_offset(pud, address); in lookup_pmd_address()
438 static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte) in __set_pmd_pte() argument
451 pgd = (pgd_t *)page_address(page) + pgd_index(address); in __set_pmd_pte()
452 pud = pud_offset(pgd, address); in __set_pmd_pte()
453 pmd = pmd_offset(pud, address); in __set_pmd_pte()
461 try_preserve_large_page(pte_t *kpte, unsigned long address, in try_preserve_large_page() argument
478 tmp = _lookup_address_cpa(cpa, address, &level); in try_preserve_large_page()
499 nextpage_addr = (address + psize) & pmask; in try_preserve_large_page()
500 numpages = (nextpage_addr - address) >> PAGE_SHIFT; in try_preserve_large_page()
539 pfn = pte_pfn(old_pte) + ((address & (psize - 1)) >> PAGE_SHIFT); in try_preserve_large_page()
542 new_prot = static_protections(req_prot, address, pfn); in try_preserve_large_page()
549 addr = address & pmask; in try_preserve_large_page()
575 if (address == (address & pmask) && cpa->numpages == (psize >> PAGE_SHIFT)) { in try_preserve_large_page()
581 __set_pmd_pte(kpte, address, new_pte); in try_preserve_large_page()
593 __split_large_page(struct cpa_data *cpa, pte_t *kpte, unsigned long address, in __split_large_page() argument
607 tmp = _lookup_address_cpa(cpa, address, &level); in __split_large_page()
653 if (pfn_range_is_mapped(PFN_DOWN(__pa(address)), in __split_large_page()
654 PFN_DOWN(__pa(address)) + 1)) in __split_large_page()
664 __set_pmd_pte(kpte, address, mk_pte(base, __pgprot(_KERNPG_TABLE))); in __split_large_page()
681 unsigned long address) in split_large_page() argument
693 if (__split_large_page(cpa, kpte, address, base)) in split_large_page()
1125 unsigned long address; in __change_page_attr() local
1134 address = (unsigned long)page_address(page); in __change_page_attr()
1136 address = cpa->vaddr[cpa->curpage]; in __change_page_attr()
1138 address = *cpa->vaddr; in __change_page_attr()
1140 kpte = _lookup_address_cpa(cpa, address, &level); in __change_page_attr()
1142 return __cpa_process_fault(cpa, address, primary); in __change_page_attr()
1146 return __cpa_process_fault(cpa, address, primary); in __change_page_attr()
1156 new_prot = static_protections(new_prot, address, pfn); in __change_page_attr()
1192 do_split = try_preserve_large_page(kpte, address, cpa); in __change_page_attr()
1204 err = split_large_page(cpa, kpte, address); in __change_page_attr()
1882 int kernel_map_pages_in_pgd(pgd_t *pgd, u64 pfn, unsigned long address, in kernel_map_pages_in_pgd() argument
1888 .vaddr = &address, in kernel_map_pages_in_pgd()
1912 void kernel_unmap_pages_in_pgd(pgd_t *root, unsigned long address, in kernel_unmap_pages_in_pgd() argument
1915 unmap_pgd_range(root, address, address + (numpages << PAGE_SHIFT)); in kernel_unmap_pages_in_pgd()