Re: [PATCH v2 4/5] pselect6: use __kernel_timespec

From: Deepa Dinamani
Date: Sat Sep 15 2018 - 15:04:31 EST


On Sat, Sep 15, 2018 at 11:42 AM Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>
> On Sat, 15 Sep 2018, Deepa Dinamani wrote:
>
> > On Sat, Sep 15, 2018 at 8:28 AM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> > >
> > > On Sat, Sep 15, 2018 at 7:09 AM Deepa Dinamani <deepa.kernel@xxxxxxxxx> wrote:
> > >
> > > > +#if defined(CONFIG_64BIT_TIME)
> > > > +
> > > > +COMPAT_SYSCALL_DEFINE6(pselect6_time64, int, n, compat_ulong_t __user *, inp,
> > > > + compat_ulong_t __user *, outp, compat_ulong_t __user *, exp,
> > > > + struct __kernel_timespec __user *, tsp, void __user *, sig)
> > >
> > > I got a link error here since compat_sys_pselect6_time64 and
> > > compat_sys_ppoll_time64 are only defined when CONFIG_64BIT_TIME
> > > is set.
> > >
> > > I did not think we would select this symbol on arm64, is that a mistake
> > > on my side, or should the #ifdef check be removed?
> >
> > But, this is a compat syscall.
> > When we introduced this CONFIG_64BIT_TIME we planned to use it for
> > compat syscalls also is my understanding.
> >
> > config 64BIT_TIME
> > def_bool ARCH_HAS_64BIT_TIME
> > help
> > This should be selected by all architectures that need to support
> > new system calls with a 64-bit time_t. This is relevant on all 32-bit
> > architectures, and 64-bit architectures as part of compat syscall
> > handling.
> >
> > This means it should be set on 64 bit architechtures also right?
>
> It's only set when 32bit compat mode is enabled on the 64bit kernel.

Ok, then we could delete the #ifdef like Arnd suggested. So this will
be defined for all architectures that enable CONFIG_COMPAT
unconditionally.
I will post an updated version.

Thanks,
Deepa