From: Pierre Peiffer This is a fix for a bug introduced by the patch make-futex_wait-use-an-hrtimer-for-timeout.patch : the timeout value is not passed anymore to futex_lock_pi. Signed-off-by: Pierre Peiffer Cc: Sebastien Dugue Cc: Ingo Molnar Cc: Ulrich Drepper Signed-off-by: Andrew Morton --- kernel/futex.c | 4 +++- kernel/futex_compat.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff -puN kernel/futex.c~make-futex_wait-use-an-hrtimer-for-timeout-fix-2 kernel/futex.c --- a/kernel/futex.c~make-futex_wait-use-an-hrtimer-for-timeout-fix-2 +++ a/kernel/futex.c @@ -1874,8 +1874,10 @@ asmlinkage long sys_futex(u32 __user *ua return -EFAULT; if (!timespec_valid(&ts)) return -EINVAL; + + t = timespec_to_ktime(ts); if (op == FUTEX_WAIT) - t = ktime_add(ktime_get(), timespec_to_ktime(ts)); + t = ktime_add(ktime_get(), t); tp = &t; } /* diff -puN kernel/futex_compat.c~make-futex_wait-use-an-hrtimer-for-timeout-fix-2 kernel/futex_compat.c --- a/kernel/futex_compat.c~make-futex_wait-use-an-hrtimer-for-timeout-fix-2 +++ a/kernel/futex_compat.c @@ -150,8 +150,10 @@ asmlinkage long compat_sys_futex(u32 __u return -EFAULT; if (!timespec_valid(&ts)) return -EINVAL; + + t = timespec_to_ktime(ts); if (op == FUTEX_WAIT) - t = ktime_add(ktime_get(), timespec_to_ktime(ts)); + t = ktime_add(ktime_get(), t); tp = &t; } if (op == FUTEX_REQUEUE || op == FUTEX_CMP_REQUEUE) _