Re: [PATCH v1] futex: Add compat_sys_futex_waitv for 32bit compatibility

From: Wei Gao
Date: Fri Dec 01 2023 - 01:50:07 EST


On Wed, Nov 29, 2023 at 09:54:56PM +0100, Thomas Gleixner wrote:
> On Thu, Nov 23 2023 at 00:31, Wei Gao wrote:
> > The new function copy main logic of current sys_futex_waitv, just update parameter
> > type from "struct __kernel_timespec __user *" to "struct old_timespec32 __user *,"
> > and use get_old_timespec32 within the new function to get timeout
> > value.
>
> That's not how it works.
>
> struct __kernel_timespec is the same on 64bit and 32bit syscalls.
>
> User space has to use the proper type when invoking a syscall and and
> not just decide that it can use something arbitrary.
>
> All new syscalls which deal with time use the Y2038 aware data types and
> do not have compat fallbacks because there is no requirement to have
> them.
>
> If user space want's to use struct timespec on 32bit nevertheless in the
> programm for a new syscall, which is obviously stupid in the context of
> Y2038, then it's a user space problem to convert back and forth between
> the two data types.
>
> Fix LTP to be Y2038 safe instead.

Thanks a lot for your suggestion, will check it.

>
> Thanks,
>
> tglx