From 8e3d7caee552a5c41ffc9a8cfb8ad0067aca0355 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Fri, 7 Feb 2020 22:21:44 +0000 Subject: [PATCH] linux futex_put(): do not touch futex after dropping our reference. Reported and tested by: Steve Roome Sponsored by: The FreeBSD Foundation MFC after: 1 week --- sys/compat/linux/linux_futex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/compat/linux/linux_futex.c b/sys/compat/linux/linux_futex.c index 4f42081156b..35deca0bfdc 100644 --- a/sys/compat/linux/linux_futex.c +++ b/sys/compat/linux/linux_futex.c @@ -329,9 +329,9 @@ futex_put(struct futex *f, struct waiting_proc *wp) f->f_key.shared); LINUX_CTR3(sys_futex, "futex_put uaddr %p ref %d shared %d", f->f_uaddr, f->f_refcount, f->f_key.shared); - FUTEXES_UNLOCK; if (FUTEX_LOCKED(f)) futex_unlock(f); + FUTEXES_UNLOCK; LIN_SDT_PROBE0(futex, futex_put, return); }