diff options
author | 2017-05-17 08:13:33 +0000 | |
---|---|---|
committer | 2017-05-17 08:13:33 +0000 | |
commit | 7e06bff442a5bb2bf53d60bec2dc24759800c022 (patch) | |
tree | 3cc486976fdff95ce134755f4e7c1e21e8db49ea /usr.bin/tmux/cmd-confirm-before.c | |
parent | regen (diff) | |
download | wireguard-openbsd-7e06bff442a5bb2bf53d60bec2dc24759800c022.tar.xz wireguard-openbsd-7e06bff442a5bb2bf53d60bec2dc24759800c022.zip |
Raise "uvm_map_entry_kmem_pool" IPL level to IPL_VM to prevent a deadlock.
A deadlock can occur when the uvm_km_thread(), running without KERNEL_LOCK()
is interrupted by and non-MPSAFE handler while holding the pool's mutex. At
that moment if another CPU is holding the KERNEL_LOCK() and wants to grab the
pool mutex, like in sys_kbind(), kaboom!
This is a temporaty solution, a more generate approach regarding mutexes and
un-KERNEL_LOCK()ed threads is beeing discussed.
Deadlock reported by sthen@, ok kettenis@
Diffstat (limited to 'usr.bin/tmux/cmd-confirm-before.c')
0 files changed, 0 insertions, 0 deletions