Lines Matching refs:address

251 static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,  in static_protections()  argument
270 if (within(address, (unsigned long)_text, (unsigned long)_etext)) in static_protections()
292 within(address, (unsigned long)_text, in static_protections()
313 if (lookup_address(address, &level) && (level != PG_LEVEL_4K)) in static_protections()
327 pte_t *lookup_address_in_pgd(pgd_t *pgd, unsigned long address, in lookup_address_in_pgd() argument
338 pud = pud_offset(pgd, address); in lookup_address_in_pgd()
346 pmd = pmd_offset(pud, address); in lookup_address_in_pgd()
356 return pte_offset_kernel(pmd, address); in lookup_address_in_pgd()
367 pte_t *lookup_address(unsigned long address, unsigned int *level) in lookup_address() argument
369 return lookup_address_in_pgd(pgd_offset_k(address), address, level); in lookup_address()
373 static pte_t *_lookup_address_cpa(struct cpa_data *cpa, unsigned long address, in _lookup_address_cpa() argument
377 return lookup_address_in_pgd(cpa->pgd + pgd_index(address), in _lookup_address_cpa()
378 address, level); in _lookup_address_cpa()
380 return lookup_address(address, level); in _lookup_address_cpa()
387 pmd_t *lookup_pmd_address(unsigned long address) in lookup_pmd_address() argument
392 pgd = pgd_offset_k(address); in lookup_pmd_address()
396 pud = pud_offset(pgd, address); in lookup_pmd_address()
400 return pmd_offset(pud, address); in lookup_pmd_address()
451 static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte) in __set_pmd_pte() argument
464 pgd = (pgd_t *)page_address(page) + pgd_index(address); in __set_pmd_pte()
465 pud = pud_offset(pgd, address); in __set_pmd_pte()
466 pmd = pmd_offset(pud, address); in __set_pmd_pte()
474 try_preserve_large_page(pte_t *kpte, unsigned long address, in try_preserve_large_page() argument
491 tmp = _lookup_address_cpa(cpa, address, &level); in try_preserve_large_page()
516 nextpage_addr = (address + psize) & pmask; in try_preserve_large_page()
517 numpages = (nextpage_addr - address) >> PAGE_SHIFT; in try_preserve_large_page()
556 pfn = old_pfn + ((address & (psize - 1)) >> PAGE_SHIFT); in try_preserve_large_page()
559 new_prot = static_protections(req_prot, address, pfn); in try_preserve_large_page()
566 addr = address & pmask; in try_preserve_large_page()
592 if (address == (address & pmask) && cpa->numpages == (psize >> PAGE_SHIFT)) { in try_preserve_large_page()
598 __set_pmd_pte(kpte, address, new_pte); in try_preserve_large_page()
610 __split_large_page(struct cpa_data *cpa, pte_t *kpte, unsigned long address, in __split_large_page() argument
624 tmp = _lookup_address_cpa(cpa, address, &level); in __split_large_page()
677 if (virt_addr_valid(address)) { in __split_large_page()
678 unsigned long pfn = PFN_DOWN(__pa(address)); in __split_large_page()
691 __set_pmd_pte(kpte, address, mk_pte(base, __pgprot(_KERNPG_TABLE))); in __split_large_page()
708 unsigned long address) in split_large_page() argument
720 if (__split_large_page(cpa, kpte, address, base)) in split_large_page()
1152 unsigned long address; in __change_page_attr() local
1161 address = (unsigned long)page_address(page); in __change_page_attr()
1163 address = cpa->vaddr[cpa->curpage]; in __change_page_attr()
1165 address = *cpa->vaddr; in __change_page_attr()
1167 kpte = _lookup_address_cpa(cpa, address, &level); in __change_page_attr()
1169 return __cpa_process_fault(cpa, address, primary); in __change_page_attr()
1173 return __cpa_process_fault(cpa, address, primary); in __change_page_attr()
1183 new_prot = static_protections(new_prot, address, pfn); in __change_page_attr()
1219 do_split = try_preserve_large_page(kpte, address, cpa); in __change_page_attr()
1231 err = split_large_page(cpa, kpte, address); in __change_page_attr()
1945 int kernel_map_pages_in_pgd(pgd_t *pgd, u64 pfn, unsigned long address, in kernel_map_pages_in_pgd() argument
1951 .vaddr = &address, in kernel_map_pages_in_pgd()
1975 void kernel_unmap_pages_in_pgd(pgd_t *root, unsigned long address, in kernel_unmap_pages_in_pgd() argument
1978 unmap_pgd_range(root, address, address + (numpages << PAGE_SHIFT)); in kernel_unmap_pages_in_pgd()