diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 2001-12-06 18:53:02 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 2001-12-06 18:53:02 +0000 |
commit | ef33affa955ee94fa1f0110ad30568ff5299b34a (patch) | |
tree | ab5806cce393a66f8b9ae2e9c906bae806b9886f /sys/arch | |
parent | 0efb9c77e28254756c7c3bbf655e462dd943e2e8 (diff) |
Sprinkle pmap_update() calls (based on NetBSD)
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/hp300/hp300/leds.c | 3 | ||||
-rw-r--r-- | sys/arch/hp300/hp300/machdep.c | 7 | ||||
-rw-r--r-- | sys/arch/hp300/hp300/mem.c | 4 | ||||
-rw-r--r-- | sys/arch/hp300/hp300/trap.c | 4 |
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); |