Messages in this thread Patch in this message | | | Date | Thu, 22 Apr 2021 21:44:20 +0200 | From | Thomas Gleixner <> | Subject | [patch 3/6] futex: Get rid of the val2 conditional dance |
| |
There is no point in checking which FUTEX operand treats the utime pointer as 'val2' argument because that argument to do_futex() is only used by exactly these operands.
So just handing it in unconditionally is not making any difference, but removes a lot of pointless gunk.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- kernel/futex.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-)
--- a/kernel/futex.c +++ b/kernel/futex.c @@ -3765,7 +3765,6 @@ SYSCALL_DEFINE6(futex, u32 __user *, uad { struct timespec64 ts; ktime_t t, *tp = NULL; - u32 val2 = 0; int cmd = op & FUTEX_CMD_MASK; if (utime && (cmd == FUTEX_WAIT || cmd == FUTEX_LOCK_PI || @@ -3785,15 +3784,8 @@ SYSCALL_DEFINE6(futex, u32 __user *, uad t = timens_ktime_to_host(CLOCK_MONOTONIC, t); tp = &t; } - /* - * requeue parameter in 'utime' if cmd == FUTEX_*_REQUEUE_*. - * number of waiters to wake in 'utime' if cmd == FUTEX_WAKE_OP. - */ - if (cmd == FUTEX_REQUEUE || cmd == FUTEX_CMP_REQUEUE || - cmd == FUTEX_CMP_REQUEUE_PI || cmd == FUTEX_WAKE_OP) - val2 = (u32) (unsigned long) utime; - return do_futex(uaddr, op, val, tp, uaddr2, val2, val3); + return do_futex(uaddr, op, val, tp, uaddr2, (unsigned long)utime, val3); } #ifdef CONFIG_COMPAT @@ -3961,7 +3953,6 @@ SYSCALL_DEFINE6(futex_time32, u32 __user { struct timespec64 ts; ktime_t t, *tp = NULL; - int val2 = 0; int cmd = op & FUTEX_CMD_MASK; if (utime && (cmd == FUTEX_WAIT || cmd == FUTEX_LOCK_PI || @@ -3979,11 +3970,8 @@ SYSCALL_DEFINE6(futex_time32, u32 __user t = timens_ktime_to_host(CLOCK_MONOTONIC, t); tp = &t; } - if (cmd == FUTEX_REQUEUE || cmd == FUTEX_CMP_REQUEUE || - cmd == FUTEX_CMP_REQUEUE_PI || cmd == FUTEX_WAKE_OP) - val2 = (int) (unsigned long) utime; - return do_futex(uaddr, op, val, tp, uaddr2, val2, val3); + return do_futex(uaddr, op, val, tp, uaddr2, (unsigned long)utime, val3); } #endif /* CONFIG_COMPAT_32BIT_TIME */
| |