Delete a debugging clause that is no longer necessary, and also can't

work properly if we're testing for a pmap active on _other_ processors.
This commit is contained in:
thorpej 1998-06-12 07:28:07 +00:00
parent 0a47d0d577
commit dfeb8f794c
1 changed files with 14 additions and 29 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: pmap.c,v 1.55 1998/06/12 00:45:47 thorpej Exp $ */
/* $NetBSD: pmap.c,v 1.56 1998/06/12 07:28:07 thorpej Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -163,7 +163,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.55 1998/06/12 00:45:47 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.56 1998/06/12 07:28:07 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -422,7 +422,7 @@ pa_to_pvh(pa)
void alpha_protection_init __P((void));
boolean_t pmap_remove_mapping __P((pmap_t, vm_offset_t, pt_entry_t *,
boolean_t));
void pmap_changebit __P((vm_offset_t, u_long, boolean_t));
void pmap_changebit __P((vm_offset_t, u_long, u_long));
void pmap_pinit __P((pmap_t));
void pmap_release __P((pmap_t));
@ -460,26 +460,12 @@ int pmap_physpage_addref __P((void *));
int pmap_physpage_delref __P((void *));
/*
* PMAP_ISACTIVE{,_TEST}:
* PMAP_ISACTIVE:
*
* Check to see if a pmap is active on the current processor.
*/
#define PMAP_ISACTIVE_TEST(pm) \
(((pm)->pm_cpus & (1UL << alpha_pal_whami())) != 0)
#ifdef DEBUG
#define PMAP_ISACTIVE(pm) \
({ \
int isactive_ = PMAP_ISACTIVE_TEST(pm); \
\
if (curproc != NULL && \
(isactive_ ^ ((pm) == curproc->p_vmspace->vm_map.pmap))) \
panic("PMAP_ISACTIVE"); \
(isactive_); \
})
#else
#define PMAP_ISACTIVE(pm) PMAP_ISACTIVE_TEST(pm)
#endif /* DEBUG */
(((pm)->pm_cpus & (1UL << alpha_pal_whami())) != 0)
/*
* PMAP_ACTIVATE_ASN_SANITY:
@ -1301,7 +1287,7 @@ pmap_page_protect(pa, prot)
pvh = pa_to_pvh(pa);
PMAP_HEAD_TO_MAP_LOCK();
simple_lock(&pvh->pvh_slock);
/* XXX */ pmap_changebit(pa, PG_KWE | PG_UWE, FALSE);
pmap_changebit(pa, 0, ~(PG_KWE|PG_UWE));
simple_unlock(&pvh->pvh_slock);
PMAP_HEAD_TO_MAP_UNLOCK();
return;
@ -2164,7 +2150,7 @@ pmap_clear_modify(pg)
if (pvh->pvh_attrs & PGA_MODIFIED) {
rv = TRUE;
pmap_changebit(pa, PG_FOW, TRUE);
pmap_changebit(pa, PG_FOW, ~0);
pvh->pvh_attrs &= ~PGA_MODIFIED;
}
@ -2193,7 +2179,7 @@ pmap_clear_modify(pa)
simple_lock(&pvh->pvh_slock);
if (pvh->pvh_attrs & PGA_MODIFIED) {
pmap_changebit(pa, PG_FOW, TRUE);
pmap_changebit(pa, PG_FOW, ~0);
pvh->pvh_attrs &= ~PGA_MODIFIED;
}
@ -2228,7 +2214,7 @@ pmap_clear_reference(pg)
if (pvh->pvh_attrs & PGA_REFERENCED) {
rv = TRUE;
pmap_changebit(pa, PG_FOR | PG_FOW | PG_FOE, TRUE);
pmap_changebit(pa, PG_FOR | PG_FOW | PG_FOE, ~0);
pvh->pvh_attrs &= ~PGA_REFERENCED;
}
@ -2257,7 +2243,7 @@ pmap_clear_reference(pa)
simple_lock(&pvh->pvh_slock);
if (pvh->pvh_attrs & PGA_REFERENCED) {
pmap_changebit(pa, PG_FOR | PG_FOW | PG_FOE, TRUE);
pmap_changebit(pa, PG_FOR | PG_FOW | PG_FOE, ~0);
pvh->pvh_attrs &= ~PGA_REFERENCED;
}
@ -2596,10 +2582,9 @@ pmap_remove_mapping(pmap, va, pte, dolock)
* the pmaps as we encounter them.
*/
void
pmap_changebit(pa, bit, setem)
pmap_changebit(pa, set, mask)
vm_offset_t pa;
u_long bit;
boolean_t setem;
u_long set, mask;
{
struct pv_head *pvh;
pv_entry_t pv;
@ -2629,7 +2614,7 @@ pmap_changebit(pa, bit, setem)
/*
* XXX don't write protect pager mappings
*/
/* XXX */ if (bit == (PG_UWE | PG_KWE)) {
/* XXX */ if (mask == ~(PG_KWE|PG_UWE)) {
#if defined(UVM)
if (va >= uvm.pager_sva && va < uvm.pager_eva)
continue;
@ -2776,7 +2761,7 @@ pmap_emulate_reference(p, v, user, write)
pvh->pvh_attrs |= PGA_MODIFIED;
faultoff |= PG_FOW;
}
pmap_changebit(pa, faultoff, FALSE);
pmap_changebit(pa, 0, ~faultoff);
simple_unlock(&pvh->pvh_slock);
PMAP_HEAD_TO_MAP_UNLOCK();