diff options
author | Paul Irofti <pirofti@cvs.openbsd.org> | 2012-06-16 11:47:25 +0000 |
---|---|---|
committer | Paul Irofti <pirofti@cvs.openbsd.org> | 2012-06-16 11:47:25 +0000 |
commit | c2c5990cc280274ac03e5a399a0a03c14337c4c2 (patch) | |
tree | 4633be75a703d25bcf96d8883ea222eae5e7d0d3 /sys/compat | |
parent | 13e1995d2d480fdedfbd4d24b123246496d85e86 (diff) |
compat_linux: Don't hold the lock while pool_get'ing with WAITOK.
Okay jasper@.
Diffstat (limited to 'sys/compat')
-rw-r--r-- | sys/compat/linux/linux_futex.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/compat/linux/linux_futex.c b/sys/compat/linux/linux_futex.c index 2db9e5cdfdd..20a9b224d5f 100644 --- a/sys/compat/linux/linux_futex.c +++ b/sys/compat/linux/linux_futex.c @@ -1,4 +1,4 @@ -/* $OpenBSD: linux_futex.c,v 1.1 2011/09/18 02:23:18 pirofti Exp $ */ +/* $OpenBSD: linux_futex.c,v 1.2 2012/06/16 11:47:24 pirofti Exp $ */ /* $NetBSD: linux_futex.c,v 1.26 2010/07/07 01:30:35 chs Exp $ */ /*- @@ -203,7 +203,9 @@ linux_do_futex(struct proc *p, const struct linux_sys_futex_args *uap, if (SCARG(uap, timeout) != NULL && timeout_hz == 0) timeout_hz = 1; + mtx_leave(&futex_lock); wp = pool_get(&futex_wp_pool, PR_WAITOK); + mtx_enter(&futex_lock); f = futex_get(SCARG(uap, uaddr)); ret = futex_sleep(&f, p, timeout_hz, wp); |