|
@@ -2258,7 +2258,7 @@ static long futex_wait_restart(struct restart_block *restart)
|
|
* if there are waiters then it will block, it does PI, etc. (Due to
|
|
* if there are waiters then it will block, it does PI, etc. (Due to
|
|
* races the kernel might see a 0 value of the futex too.)
|
|
* races the kernel might see a 0 value of the futex too.)
|
|
*/
|
|
*/
|
|
-static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, int detect,
|
|
|
|
|
|
+static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
|
|
ktime_t *time, int trylock)
|
|
ktime_t *time, int trylock)
|
|
{
|
|
{
|
|
struct hrtimer_sleeper timeout, *to = NULL;
|
|
struct hrtimer_sleeper timeout, *to = NULL;
|
|
@@ -2953,11 +2953,11 @@ long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout,
|
|
case FUTEX_WAKE_OP:
|
|
case FUTEX_WAKE_OP:
|
|
return futex_wake_op(uaddr, flags, uaddr2, val, val2, val3);
|
|
return futex_wake_op(uaddr, flags, uaddr2, val, val2, val3);
|
|
case FUTEX_LOCK_PI:
|
|
case FUTEX_LOCK_PI:
|
|
- return futex_lock_pi(uaddr, flags, val, timeout, 0);
|
|
|
|
|
|
+ return futex_lock_pi(uaddr, flags, timeout, 0);
|
|
case FUTEX_UNLOCK_PI:
|
|
case FUTEX_UNLOCK_PI:
|
|
return futex_unlock_pi(uaddr, flags);
|
|
return futex_unlock_pi(uaddr, flags);
|
|
case FUTEX_TRYLOCK_PI:
|
|
case FUTEX_TRYLOCK_PI:
|
|
- return futex_lock_pi(uaddr, flags, 0, timeout, 1);
|
|
|
|
|
|
+ return futex_lock_pi(uaddr, flags, NULL, 1);
|
|
case FUTEX_WAIT_REQUEUE_PI:
|
|
case FUTEX_WAIT_REQUEUE_PI:
|
|
val3 = FUTEX_BITSET_MATCH_ANY;
|
|
val3 = FUTEX_BITSET_MATCH_ANY;
|
|
return futex_wait_requeue_pi(uaddr, flags, val, timeout, val3,
|
|
return futex_wait_requeue_pi(uaddr, flags, val, timeout, val3,
|