diff options
author | dchagin <dchagin@FreeBSD.org> | 2016-01-10 07:36:43 +0000 |
---|---|---|
committer | dchagin <dchagin@FreeBSD.org> | 2016-01-10 07:36:43 +0000 |
commit | 04d7fe6b9bd8ca393d84dd23c10b164e0140e628 (patch) | |
tree | 60c8a4b8dd27c193148ef41edca9bb79cd25d0b1 /sys | |
parent | 3572a9608b18d1991012b4c2735baecb26110c38 (diff) | |
download | FreeBSD-src-04d7fe6b9bd8ca393d84dd23c10b164e0140e628.zip FreeBSD-src-04d7fe6b9bd8ca393d84dd23c10b164e0140e628.tar.gz |
Unlock process lock when return error from getrobustlist call and add
an forgotten dtrace probe when return the same error.
MFC after: 3 days
XMFC with: r292743
Diffstat (limited to 'sys')
-rw-r--r-- | sys/compat/linux/linux_futex.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/compat/linux/linux_futex.c b/sys/compat/linux/linux_futex.c index e2aad79..db8ab2c 100644 --- a/sys/compat/linux/linux_futex.c +++ b/sys/compat/linux/linux_futex.c @@ -1099,8 +1099,12 @@ linux_get_robust_list(struct thread *td, struct linux_get_robust_list_args *args ESRCH); return (ESRCH); } - if (SV_PROC_ABI(td2->td_proc) != SV_ABI_LINUX) + if (SV_PROC_ABI(td2->td_proc) != SV_ABI_LINUX) { + LIN_SDT_PROBE1(futex, linux_get_robust_list, return, + EPERM); + PROC_UNLOCK(td2->td_proc); return (EPERM); + } em = em_find(td2); KASSERT(em != NULL, ("get_robust_list: emuldata notfound.\n")); |