Lines Matching refs:page
116 void __flush_ptrace_access(struct page *page, unsigned long uaddr, void *kaddr, in __flush_ptrace_access() argument
128 flush_pfn_alias(page_to_pfn(page), uaddr); in __flush_ptrace_access()
137 flush_icache_alias(page_to_pfn(page), uaddr, len); in __flush_ptrace_access()
147 void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, in flush_ptrace_access() argument
155 __flush_ptrace_access(page, uaddr, kaddr, len, flags); in flush_ptrace_access()
158 void flush_uprobe_xol_access(struct page *page, unsigned long uaddr, in flush_uprobe_xol_access() argument
163 __flush_ptrace_access(page, uaddr, kaddr, len, flags); in flush_uprobe_xol_access()
173 void copy_to_user_page(struct vm_area_struct *vma, struct page *page, in copy_to_user_page() argument
181 flush_ptrace_access(vma, page, uaddr, dst, len); in copy_to_user_page()
187 void __flush_dcache_page(struct address_space *mapping, struct page *page) in __flush_dcache_page() argument
194 if (!PageHighMem(page)) { in __flush_dcache_page()
195 size_t page_size = PAGE_SIZE << compound_order(page); in __flush_dcache_page()
196 __cpuc_flush_dcache_area(page_address(page), page_size); in __flush_dcache_page()
200 for (i = 0; i < (1 << compound_order(page)); i++) { in __flush_dcache_page()
201 void *addr = kmap_atomic(page + i); in __flush_dcache_page()
206 for (i = 0; i < (1 << compound_order(page)); i++) { in __flush_dcache_page()
207 void *addr = kmap_high_get(page + i); in __flush_dcache_page()
210 kunmap_high(page + i); in __flush_dcache_page()
222 flush_pfn_alias(page_to_pfn(page), in __flush_dcache_page()
223 page->index << PAGE_CACHE_SHIFT); in __flush_dcache_page()
226 static void __flush_dcache_aliases(struct address_space *mapping, struct page *page) in __flush_dcache_aliases() argument
238 pgoff = page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT); in __flush_dcache_aliases()
252 flush_cache_page(mpnt, mpnt->vm_start + offset, page_to_pfn(page)); in __flush_dcache_aliases()
261 struct page *page; in __sync_icache_dcache() local
271 page = pfn_to_page(pfn); in __sync_icache_dcache()
273 mapping = page_mapping(page); in __sync_icache_dcache()
277 if (!test_and_set_bit(PG_dcache_clean, &page->flags)) in __sync_icache_dcache()
278 __flush_dcache_page(mapping, page); in __sync_icache_dcache()
304 void flush_dcache_page(struct page *page) in flush_dcache_page() argument
312 if (page == ZERO_PAGE(0)) in flush_dcache_page()
315 mapping = page_mapping(page); in flush_dcache_page()
318 mapping && !page_mapped(page)) in flush_dcache_page()
319 clear_bit(PG_dcache_clean, &page->flags); in flush_dcache_page()
321 __flush_dcache_page(mapping, page); in flush_dcache_page()
323 __flush_dcache_aliases(mapping, page); in flush_dcache_page()
326 set_bit(PG_dcache_clean, &page->flags); in flush_dcache_page()
340 void flush_kernel_dcache_page(struct page *page) in flush_kernel_dcache_page() argument
345 mapping = page_mapping(page); in flush_kernel_dcache_page()
350 addr = page_address(page); in flush_kernel_dcache_page()
373 void __flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr) in __flush_anon_page() argument
384 pfn = page_to_pfn(page); in __flush_anon_page()
401 __cpuc_flush_dcache_area(page_address(page), PAGE_SIZE); in __flush_anon_page()