Index: pmap.c =================================================================== RCS file: /home/netbsd/src/sys/arch/aarch64/aarch64/pmap.c,v retrieving revision 1.79 diff -p -u -r1.79 pmap.c --- pmap.c 24 Jun 2020 08:27:47 -0000 1.79 +++ pmap.c 24 Jun 2020 19:22:34 -0000 @@ -448,7 +448,7 @@ pmap_bootstrap(vaddr_t vstart, vaddr_t v UVMHIST_FUNC(__func__); UVMHIST_CALLED(pmaphist); -#if 0 +#if 1 /* uvmexp.ncolors = icachesize / icacheways / PAGE_SIZE; */ uvmexp.ncolors = aarch64_cache_vindexsize / PAGE_SIZE; #endif @@ -947,10 +947,15 @@ pmap_icache_sync_range(pmap_t pm, vaddr_ void pmap_procwr(struct proc *p, vaddr_t va, int len) { + paddr_t pa; - /* We only need to do anything if it is the current process. */ - if (p == curproc) - cpu_icache_sync_range(va, len); + if (p != curproc) { + struct pmap *pm = p->p_vmspace->vm_map.pmap; + if (!pmap_extract(pm, va, &pa)) + return; + va = AARCH64_PA_TO_KVA(pa); + } + cpu_icache_sync_range(va, len); } static pt_entry_t