summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorTodd C. Miller <millert@cvs.openbsd.org>2001-12-06 18:53:02 +0000
committerTodd C. Miller <millert@cvs.openbsd.org>2001-12-06 18:53:02 +0000
commitef33affa955ee94fa1f0110ad30568ff5299b34a (patch)
treeab5806cce393a66f8b9ae2e9c906bae806b9886f /sys/arch
parent0efb9c77e28254756c7c3bbf655e462dd943e2e8 (diff)
Sprinkle pmap_update() calls (based on NetBSD)
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/hp300/hp300/leds.c3
-rw-r--r--sys/arch/hp300/hp300/machdep.c7
-rw-r--r--sys/arch/hp300/hp300/mem.c4
-rw-r--r--sys/arch/hp300/hp300/trap.c4
4 files changed, 14 insertions, 4 deletions
diff --git a/sys/arch/hp300/hp300/leds.c b/sys/arch/hp300/hp300/leds.c
index 02ddbbc6cfd..5c59c2a8bb5 100644
--- a/sys/arch/hp300/hp300/leds.c
+++ b/sys/arch/hp300/hp300/leds.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: leds.c,v 1.5 2001/11/06 19:53:14 miod Exp $ */
+/* $OpenBSD: leds.c,v 1.6 2001/12/06 18:53:01 millert Exp $ */
/* $NetBSD: leds.c,v 1.1 1997/05/05 20:54:35 thorpej Exp $ */
/*
@@ -62,6 +62,7 @@ ledinit()
pmap_enter(pmap_kernel(), (vaddr_t)ledbase, (paddr_t)LED_ADDR,
VM_PROT_READ|VM_PROT_WRITE, VM_PROT_READ|VM_PROT_WRITE|PMAP_WIRED);
+ pmap_update(pmap_kernel());
ledaddr = (u_int8_t *) ((long)ledbase | (LED_ADDR & PGOFSET));
}
diff --git a/sys/arch/hp300/hp300/machdep.c b/sys/arch/hp300/hp300/machdep.c
index c3d5f783ea5..7b689f7caf0 100644
--- a/sys/arch/hp300/hp300/machdep.c
+++ b/sys/arch/hp300/hp300/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.73 2001/12/06 01:03:43 miod Exp $ */
+/* $OpenBSD: machdep.c,v 1.74 2001/12/06 18:53:01 millert Exp $ */
/* $NetBSD: machdep.c,v 1.121 1999/03/26 23:41:29 mycroft Exp $ */
/*
@@ -266,6 +266,7 @@ cpu_startup()
for (i = 0; i < btoc(MSGBUFSIZE); i++)
pmap_enter(pmap_kernel(), (vaddr_t)msgbufp + i * NBPG,
avail_end + i * NBPG, VM_PROT_ALL, VM_PROT_ALL|PMAP_WIRED);
+ pmap_update(pmap_kernel());
initmsgbuf((caddr_t)msgbufp, round_page(MSGBUFSIZE));
/*
@@ -324,6 +325,7 @@ cpu_startup()
curbufsize -= PAGE_SIZE;
}
}
+ pmap_update(pmap_kernel());
/*
* Allocate a submap for exec arguments. This map effectively
@@ -951,6 +953,7 @@ dumpsys()
pmap_enter(pmap_kernel(), (vaddr_t)vmmap, maddr,
VM_PROT_READ, VM_PROT_READ|PMAP_WIRED);
+ pmap_update(pmap_kernel());
error = (*dump)(dumpdev, blkno, vmmap, NBPG);
switch (error) {
case 0:
@@ -1203,6 +1206,7 @@ parityerrorfind()
for (pg = btoc(lowram); pg < btoc(lowram)+physmem; pg++) {
pmap_enter(pmap_kernel(), (vaddr_t)vmmap, ctob(pg),
VM_PROT_READ, VM_PROT_READ|PMAP_WIRED);
+ pmap_update(pmap_kernel());
ip = (int *)vmmap;
for (o = 0; o < NBPG; o += sizeof(int))
i = *ip++;
@@ -1215,6 +1219,7 @@ parityerrorfind()
done:
looking = 0;
pmap_remove(pmap_kernel(), (vaddr_t)vmmap, (vaddr_t)&vmmap[NBPG]);
+ pmap_update(pmap_kernel());
ecacheon();
splx(s);
return(found);
diff --git a/sys/arch/hp300/hp300/mem.c b/sys/arch/hp300/hp300/mem.c
index 84c4b8b919f..e55ee87b723 100644
--- a/sys/arch/hp300/hp300/mem.c
+++ b/sys/arch/hp300/hp300/mem.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mem.c,v 1.17 2001/11/06 19:53:14 miod Exp $ */
+/* $OpenBSD: mem.c,v 1.18 2001/12/06 18:53:01 millert Exp $ */
/* $NetBSD: mem.c,v 1.25 1999/03/27 00:30:06 mycroft Exp $ */
/*
@@ -147,11 +147,13 @@ mmrw(dev, uio, flags)
VM_PROT_WRITE;
pmap_enter(pmap_kernel(), (vaddr_t)vmmap,
trunc_page(v), prot, prot|PMAP_WIRED);
+ pmap_update(pmap_kernel());
o = uio->uio_offset & PGOFSET;
c = min(uio->uio_resid, (int)(NBPG - o));
error = uiomove((caddr_t)vmmap + o, c, uio);
pmap_remove(pmap_kernel(), (vaddr_t)vmmap,
(vaddr_t)vmmap + NBPG);
+ pmap_update(pmap_kernel());
continue;
/* minor device 1 is kernel memory */
diff --git a/sys/arch/hp300/hp300/trap.c b/sys/arch/hp300/hp300/trap.c
index 8a0d4489249..8a0c7fb5299 100644
--- a/sys/arch/hp300/hp300/trap.c
+++ b/sys/arch/hp300/hp300/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.34 2001/11/28 16:13:28 art Exp $ */
+/* $OpenBSD: trap.c,v 1.35 2001/12/06 18:53:01 millert Exp $ */
/* $NetBSD: trap.c,v 1.57 1998/02/16 20:58:31 thorpej Exp $ */
/*
@@ -781,12 +781,14 @@ writeback(fp, docachepush)
pmap_enter(pmap_kernel(), (vaddr_t)vmmap,
trunc_page((vaddr_t)f->f_fa), VM_PROT_WRITE,
VM_PROT_WRITE|PMAP_WIRED);
+ pmap_update(pmap_kernel());
fa = (u_int)&vmmap[(f->f_fa & PGOFSET) & ~0xF];
bcopy((caddr_t)&f->f_pd0, (caddr_t)fa, 16);
pmap_extract(pmap_kernel(), (vaddr_t)fa, &pa);
DCFL(pa);
pmap_remove(pmap_kernel(), (vaddr_t)vmmap,
(vaddr_t)&vmmap[NBPG]);
+ pmap_update(pmap_kernel());
} else
printf("WARNING: pid %d(%s) uid %d: CPUSH not done\n",
p->p_pid, p->p_comm, p->p_ucred->cr_uid);