Index: sys/compat/linux/linux_futex.c =================================================================== --- sys/compat/linux/linux_futex.c +++ sys/compat/linux/linux_futex.c @@ -994,12 +994,10 @@ return (EFAULT); if ((uval & FUTEX_TID_MASK) == em->em_tid) { mval = (uval & FUTEX_WAITERS) | FUTEX_OWNER_DIED; - nval = casuword32(uaddr, uval, mval); - - if (nval == -1) + error = casueword32(uaddr, uval, &nval, mval); + if (error == -1) return (EFAULT); - - if (nval != uval) + if (error == 1) goto retry; if (!pi && (uval & FUTEX_WAITERS)) {