diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2007-09-10 18:49:46 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2007-09-10 18:49:46 +0000 |
commit | b3c8c11717dc2654a849620f8f2671da4b4042fd (patch) | |
tree | 03f29ae358d0dbf5a8ac49aa7b0a310d1b0ad6b1 /sys/arch/powerpc | |
parent | f9bdf407d1c2a9694df07c9cf1d03a399b8d3c7e (diff) |
Introduce a md pmap hook, pmap_remove_holes(), which is supposed to mark
the holes a MMU may have from a given vm_map. This will be automagically
invoked for newly created vmspaces.
On platforms with MMU holes (e.g. sun4, sun4c and vax), this prevents
mmap(2) hints which would end up being in the hole to be accepted as valid,
causing unexpected signals when the process tries to access the hole
(since pmap can not fill the hole anyway).
Unfortunately, the logic mmap() uses to pick a valid address for anonymous
mappings needs work, as it will only try to find an address higher than the
hint, which causes all mmap() with a hint in the hole to fail on vax. This
will be improved later.
Diffstat (limited to 'sys/arch/powerpc')
-rw-r--r-- | sys/arch/powerpc/include/pmap.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/arch/powerpc/include/pmap.h b/sys/arch/powerpc/include/pmap.h index 51dbf28f286..29f146a3aac 100644 --- a/sys/arch/powerpc/include/pmap.h +++ b/sys/arch/powerpc/include/pmap.h @@ -1,4 +1,4 @@ -/* $OpenBSD: pmap.h,v 1.44 2007/05/27 15:46:02 drahn Exp $ */ +/* $OpenBSD: pmap.h,v 1.45 2007/09/10 18:49:45 miod Exp $ */ /* $NetBSD: pmap.h,v 1.1 1996/09/30 16:34:29 ws Exp $ */ /*- @@ -139,6 +139,7 @@ int reserve_dumppages(caddr_t p); void pmap_proc_iflush(struct proc *proc, vaddr_t va, vsize_t len); #define pmap_unuse_final(p) /* nothing */ +#define pmap_remove_holes(map) do { /* nothing */ } while (0) #define PMAP_STEAL_MEMORY |