diff options
| author | martin <martin@NetBSD.org> | 2022-06-16 14:22:02 +0000 |
|---|---|---|
| committer | martin <martin@NetBSD.org> | 2022-06-16 14:22:02 +0000 |
| commit | 9d76de85464af96869b07892ed2e936dedf9819f (patch) | |
| tree | 99743afdcac41d342d1ccb505ce2ae2d0876dc0a | |
| parent | 8c762c50349865d6d22f51daebb157301f3768a1 (diff) | |
Pull up following revision(s) (requested by skrll in ticket #1474):
sys/arch/hppa/hppa/pmap.c: revision 1.120
Re-reading the PA2.0 Cache Move-In rules tells me we do indeed need to
purge the translations from the TLBs in pmap_procwr.
PR/56867: hppa: intermittent SIGSEGV reports in t_ptrace_wait's stepN
and setstepN test cases
| -rw-r--r-- | sys/arch/hppa/hppa/pmap.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/arch/hppa/hppa/pmap.c b/sys/arch/hppa/hppa/pmap.c index 7bc15442e38..d5a7f010652 100644 --- a/sys/arch/hppa/hppa/pmap.c +++ b/sys/arch/hppa/hppa/pmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.100.20.1 2022/06/10 17:16:54 martin Exp $ */ +/* $NetBSD: pmap.c,v 1.100.20.2 2022/06/16 14:22:02 martin Exp $ */ /*- * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc. @@ -65,7 +65,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.100.20.1 2022/06/10 17:16:54 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.100.20.2 2022/06/16 14:22:02 martin Exp $"); #include "opt_cputype.h" @@ -1658,10 +1658,13 @@ pmap_activate(struct lwp *l) void pmap_procwr(struct proc *p, vaddr_t va, size_t len) { - pmap_t pmap = p->p_vmspace->vm_map.pmap; + const pmap_t pmap = p->p_vmspace->vm_map.pmap; + const pa_space_t space = pmap->pm_space; - fdcache(pmap->pm_space, va, len); - ficache(pmap->pm_space, va, len); + fdcache(space, va, len); + ficache(space, va, len); + pdtlb(space, va); + pitlb(space, va); } static inline void |
