Re: [patch 3/6] futex: Get rid of the val2 conditional dance

From: Thomas Gleixner
Date: Fri Apr 23 2021 - 18:34:20 EST


On Fri, Apr 23 2021 at 18:40, André Almeida wrote:
>>
>> - return do_futex(uaddr, op, val, tp, uaddr2, val2, val3);
>> + return do_futex(uaddr, op, val, tp, uaddr2, (unsigned long)utime, val3);
>
> Given do_futex()'s type signature, I think it makes more sense to cast
> utime to u32.

It's a pointer which you better force cast to unsigned long first.

So the explicit thing would be '(u32)(unsigned long) utime' which is
what the val2 dance stupidly did with 'int'

val2 = (int) (unsigned long) utime;

But with doing it at function call argument it's implicit, because the

unsigned long to u32 conversion is well defined

while

(u32)ptr

is only well defined on 32bit.

Thanks,

tglx