summaryrefslogtreecommitdiffstats
path: root/sys/arch/sparc
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2013-09-21 10:04:42 +0000
committermiod <miod@openbsd.org>2013-09-21 10:04:42 +0000
commitd2d5200d0d05dcf3b64b6b40ad8a63a64c6b5496 (patch)
treeb6621f9241fe300a06bee91e28e258721ebd0e5e /sys/arch/sparc
parentDon't invoke pmap_copy() on map holes. (diff)
downloadwireguard-openbsd-d2d5200d0d05dcf3b64b6b40ad8a63a64c6b5496.tar.xz
wireguard-openbsd-d2d5200d0d05dcf3b64b6b40ad8a63a64c6b5496.zip
Create process map holes with UVM_INH_SHARE so that they don't get lost in
fork-without-exec situation (such as privsep'd binaries). Fixes occasional SIGSEGV in syslogd and pflogd on sun4/4c/4e.
Diffstat (limited to 'sys/arch/sparc')
-rw-r--r--sys/arch/sparc/sparc/pmap.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arch/sparc/sparc/pmap.c b/sys/arch/sparc/sparc/pmap.c
index c83d2791906..1b1507a40a0 100644
--- a/sys/arch/sparc/sparc/pmap.c
+++ b/sys/arch/sparc/sparc/pmap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmap.c,v 1.162 2013/06/11 16:42:11 deraadt Exp $ */
+/* $OpenBSD: pmap.c,v 1.163 2013/09/21 10:04:42 miod Exp $ */
/* $NetBSD: pmap.c,v 1.118 1998/05/19 19:00:18 thorpej Exp $ */
/*
@@ -6274,7 +6274,7 @@ pmap_remove_holes(struct vm_map *map)
(void)uvm_map(map, &shole, ehole - shole, NULL,
UVM_UNKNOWN_OFFSET, 0,
- UVM_MAPFLAG(UVM_PROT_NONE, UVM_PROT_NONE, UVM_INH_NONE,
+ UVM_MAPFLAG(UVM_PROT_NONE, UVM_PROT_NONE, UVM_INH_SHARE,
UVM_ADV_RANDOM,
UVM_FLAG_NOMERGE | UVM_FLAG_HOLE | UVM_FLAG_FIXED));
}