diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 1999-08-03 15:35:24 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 1999-08-03 15:35:24 +0000 |
commit | c9137483443acc917326af2ee2cd2deb4699bf59 (patch) | |
tree | 847a4af151a21be341219db48b38614454a59164 | |
parent | e4ad7ec5153f083d6c217951f62c45f7b5bef1bf (diff) |
flush caches and tlb on mapping removal
-rw-r--r-- | sys/arch/hppa/hppa/pmap.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/arch/hppa/hppa/pmap.c b/sys/arch/hppa/hppa/pmap.c index b308e25ac98..2a4390dba9c 100644 --- a/sys/arch/hppa/hppa/pmap.c +++ b/sys/arch/hppa/hppa/pmap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pmap.c,v 1.18 1999/08/03 00:53:30 mickey Exp $ */ +/* $OpenBSD: pmap.c,v 1.19 1999/08/03 15:35:23 mickey Exp $ */ /* * Copyright (c) 1998,1999 Michael Shalayeff @@ -547,6 +547,17 @@ pmap_remove_pv(pmap, va, pv) s = splimp(); /* + * Clear it from cache and TLB + */ + ficache(pv->pv_space, pv->pv_va, PAGE_SIZE); + pitlb(pv->pv_space, pv->pv_va); + + fdcache(pv->pv_space, pv->pv_va, PAGE_SIZE); + pdtlb(pv->pv_space, pv->pv_va); + + pmap_clear_va(pv->pv_space, pv->pv_va); + + /* * If it is the first entry on the list, it is actually * in the header and we must copy the following entry up * to the header. Otherwise we must search the list for |