summaryrefslogtreecommitdiffstats
path: root/lib/libutil/imsg-buffer.c
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2015-07-10 13:06:26 +0000
committerkettenis <kettenis@openbsd.org>2015-07-10 13:06:26 +0000
commitd91261c3ead67c075f8dcca702a7b26f7812e97c (patch)
treefa55644a24dd14e8cf32cbaefb9c5d329f4b8ea3 /lib/libutil/imsg-buffer.c
parentAvoid calling pool_put(9) while holding a mutex here as well to prevent lock (diff)
downloadwireguard-openbsd-d91261c3ead67c075f8dcca702a7b26f7812e97c.tar.xz
wireguard-openbsd-d91261c3ead67c075f8dcca702a7b26f7812e97c.zip
Committed from the wrong tree. So now for real:
Don't call pool_put(9) while holding a mutex. Instead collect pv entries in a list and put them back into the pool after releasing the mutex. This prevents a lock ordering problem between the per-pmap mutexes and the kernel lock that arises because pool_put(9) may grab the kernel lock when it decides to free a pool page. This seems to make the i386 pmap mpsafe enough to run the reaper without holding the kernel lock. ok sthen@ (who helped me a lot debugging this)
Diffstat (limited to 'lib/libutil/imsg-buffer.c')
0 files changed, 0 insertions, 0 deletions