Lines Matching defs:vaddr
31 void (*_cache_line_loop_ic_fn)(phys_addr_t paddr, unsigned long vaddr,
210 * ARC VIPT I-cache uses vaddr to index into cache and paddr to match the tag.
222 * The solution was to provide CDU with these additonal vaddr bits. These
226 * of vaddr could easily be "stuffed" in the paddr as bits [4:0] since the
243 * meaning more vaddr bits needed to disambiguate the cache-line-op ;
250 void __cache_line_loop_v2(phys_addr_t paddr, unsigned long vaddr,
272 vaddr &= CACHE_LINE_MASK;
278 paddr |= (vaddr >> PAGE_SHIFT) & 0x1F;
288 * - ARC700 programming model requires paddr and vaddr be passed in seperate
295 void __cache_line_loop_v3(phys_addr_t paddr, unsigned long vaddr,
318 vaddr &= CACHE_LINE_MASK;
345 write_aux_reg(aux_cmd, vaddr);
346 vaddr += L1_CACHE_BYTES;
358 * - I-cache Aliasing: Both vaddr and paddr needed (in IC_IVIL, IC_PTAG
366 void __cache_line_loop_v4(phys_addr_t paddr, unsigned long vaddr,
420 void __cache_line_loop_v4(phys_addr_t paddr, unsigned long vaddr,
580 static inline void __dc_line_op(phys_addr_t paddr, unsigned long vaddr,
590 __cache_line_loop(paddr, vaddr, sz, op, full_page);
602 #define __dc_line_op(paddr, vaddr, sz, op)
616 __ic_line_inv_vaddr_local(phys_addr_t paddr, unsigned long vaddr,
623 (*_cache_line_loop_ic_fn)(paddr, vaddr, sz, OP_INV_IC, full_page);
634 phys_addr_t paddr, vaddr;
642 __ic_line_inv_vaddr_local(ic_inv->paddr, ic_inv->vaddr, ic_inv->sz);
645 static void __ic_line_inv_vaddr(phys_addr_t paddr, unsigned long vaddr,
650 .vaddr = vaddr,
861 unsigned long vaddr = page->index << PAGE_SHIFT;
863 if (addr_not_cache_congruent(paddr, vaddr))
864 __flush_dcache_page(paddr, vaddr);
942 WARN(kstart < TASK_SIZE, "%s() can't handle user vaddr", __func__);
968 * handling of kernel vaddr.
992 * @vaddr is typically user vaddr (breakpoint) or kernel vaddr (vmalloc)
994 * builtin kernel code) @vaddr will be paddr only, meaning CDU operation will
997 * kprobe on loadable module will be kernel vaddr.
999 void __sync_icache_dcache(phys_addr_t paddr, unsigned long vaddr, int len)
1001 __dc_line_op(paddr, vaddr, len, OP_FLUSH_N_INV);
1002 __ic_line_inv_vaddr(paddr, vaddr, len);
1006 void __inv_icache_page(phys_addr_t paddr, unsigned long vaddr)
1008 __ic_line_inv_vaddr(paddr, vaddr, PAGE_SIZE);
1013 * For kernel mappings @vaddr == @paddr
1015 void __flush_dcache_page(phys_addr_t paddr, unsigned long vaddr)
1017 __dc_line_op(paddr, vaddr & PAGE_MASK, PAGE_SIZE, OP_FLUSH_N_INV);
1083 * Note that while @u_vaddr refers to DST page's userspace vaddr, it is
1099 * here as well (given that both vaddr/paddr are available).
1232 * pair to provide vaddr/paddr respectively, just as in MMU v3