diff options
| author | ragge <ragge@NetBSD.org> | 2003-10-19 14:58:22 +0000 |
|---|---|---|
| committer | ragge <ragge@NetBSD.org> | 2003-10-19 14:58:22 +0000 |
| commit | 9fb208fc0a130f569b824c0eab97cd6974dcc613 (patch) | |
| tree | acef563b6a91165c94ee4b19d1c2f9b08d94b85b /sys | |
| parent | 836c5d5ec4b967b4dc778b8ff5ed1c3a6870d60e (diff) | |
Avoid the pvtable when devices are mapped. Fixes panics when unmapping
framebuffers. Set aside space in kernel map for framebuffer on VS4k.
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/arch/vax/vax/pmap.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/arch/vax/vax/pmap.c b/sys/arch/vax/vax/pmap.c index a9d4754190e..49cae531c3c 100644 --- a/sys/arch/vax/vax/pmap.c +++ b/sys/arch/vax/vax/pmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.128 2003/07/15 02:15:05 lukem Exp $ */ +/* $NetBSD: pmap.c,v 1.129 2003/10/19 14:58:22 ragge Exp $ */ /* * Copyright (c) 1994, 1998, 1999, 2003 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.128 2003/07/15 02:15:05 lukem Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.129 2003/10/19 14:58:22 ragge Exp $"); #include "opt_ddb.h" #include "opt_cputype.h" @@ -235,6 +235,9 @@ calc_kvmsize(vsize_t usrptsize) /* Physmap */ kvmsize += VM_PHYS_SIZE; #endif +#if VAX46 || VAX49 + kvmsize += 0x800000; /* 8 MB framebuffer */ +#endif #ifdef LKM /* LKMs are allocated out of kernel_map */ #define MAXLKMSIZ 0x100000 /* XXX */ @@ -516,6 +519,9 @@ rmpage(pmap_t pm, int *br) else vaddr = (br - (int *)pm->pm_p1br) * VAX_NBPG + 0x40000000; + if (IOSPACE((br[0] & PG_FRAME) << VAX_PGSHIFT)) + return; /* Forget mappings of IO space */ + pv = pv_table + ((br[0] & PG_FRAME) >> LTOHPS); if (((br[0] & PG_PROT) == PG_RW) && ((pv->pv_attr & PG_M) != PG_M)) |
