Re: [Y2038] [PATCH 02/23] y2038: add __kernel_old_timespec and __kernel_old_time_t

From: Arnd Bergmann
Date: Thu Nov 21 2019 - 09:17:57 EST


On Wed, Nov 20, 2019 at 11:30 PM Ben Hutchings
<ben.hutchings@xxxxxxxxxxxxxxx> wrote:
>
> On Fri, 2019-11-08 at 22:07 +0100, Arnd Bergmann wrote:
> > The 'struct timespec' definition can no longer be part of the uapi headers
> > because it conflicts with a a now incompatible libc definition. Also,
> > we really want to remove it in order to prevent new uses from creeping in.
> >
> > The same namespace conflict exists with time_t, which should also be
> > removed. __kernel_time_t could be used safely, but adding 'old' in the
> > name makes it clearer that this should not be used for new interfaces.
> >
> > Add a replacement __kernel_old_timespec structure and __kernel_old_time_t
> > along the lines of __kernel_old_timeval.
> [...]
> > --- a/include/uapi/linux/time_types.h
> > +++ b/include/uapi/linux/time_types.h
> > @@ -28,6 +28,11 @@ struct __kernel_old_timeval {
> > };
> > #endif
> >
> > +struct __kernel_old_timespec {
> > + __kernel_time_t tv_sec; /* seconds */
>
> Should this be __kernel_old_time_t for consistency?

Yes. I had already noticed this and changed it in the current version
of "y2038: uapi: change __kernel_time_t to __kernel_old_time_t".

Arnd