summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2015-09-12 18:54:47 +0000
committerkettenis <kettenis@openbsd.org>2015-09-12 18:54:47 +0000
commit2bbe218685c3f6b86de63eebb50b941f72a75f61 (patch)
tree348669ebd53991affcc043c60ea721f0c3826300
parent__strsignal() is now declared in hidden/signal.h (diff)
downloadwireguard-openbsd-2bbe218685c3f6b86de63eebb50b941f72a75f61.tar.xz
wireguard-openbsd-2bbe218685c3f6b86de63eebb50b941f72a75f61.zip
Enable some diagnostics for interrupt-safe maps that are already happening for
normal maps. ok beck@, miod@, guenther@
-rw-r--r--sys/uvm/uvm_map.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/uvm/uvm_map.c b/sys/uvm/uvm_map.c
index 9c51fa1478c..2ead35caee6 100644
--- a/sys/uvm/uvm_map.c
+++ b/sys/uvm/uvm_map.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: uvm_map.c,v 1.198 2015/09/09 23:33:37 kettenis Exp $ */
+/* $OpenBSD: uvm_map.c,v 1.199 2015/09/12 18:54:47 kettenis Exp $ */
/* $NetBSD: uvm_map.c,v 1.86 2000/11/27 08:40:03 chs Exp $ */
/*
@@ -317,6 +317,8 @@ vaddr_t uvm_maxkaddr;
do { \
if (((_map)->flags & VM_MAP_INTRSAFE) == 0) \
rw_assert_wrlock(&(_map)->lock); \
+ else \
+ MUTEX_ASSERT_LOCKED(&(_map)->mtx); \
} while (0)
/*
@@ -2409,11 +2411,14 @@ uvm_map_setup(struct vm_map *map, vaddr_t min, vaddr_t max, int flags)
if ((map->flags & VM_MAP_INTRSAFE) == 0) {
if (rw_enter(&map->lock, RW_NOSLEEP|RW_WRITE) != 0)
panic("uvm_map_setup: rw_enter failed on new map");
- }
+ } else
+ mtx_enter(&map->mtx);
uvm_map_setup_entries(map);
uvm_tree_sanity(map, __FILE__, __LINE__);
if ((map->flags & VM_MAP_INTRSAFE) == 0)
rw_exit(&map->lock);
+ else
+ mtx_leave(&map->mtx);
}
/*