summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authordchagin <dchagin@FreeBSD.org>2016-01-10 07:36:43 +0000
committerdchagin <dchagin@FreeBSD.org>2016-01-10 07:36:43 +0000
commit04d7fe6b9bd8ca393d84dd23c10b164e0140e628 (patch)
tree60c8a4b8dd27c193148ef41edca9bb79cd25d0b1 /sys/compat
parent3572a9608b18d1991012b4c2735baecb26110c38 (diff)
downloadFreeBSD-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/compat')
-rw-r--r--sys/compat/linux/linux_futex.c6
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"));
OpenPOWER on IntegriCloud