diff options
Diffstat (limited to 'sys')
-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 |