Re: [PATCH 20/23] y2038: move itimer reset into itimer.c

From: Arnd Bergmann
Date: Sat Nov 09 2019 - 16:03:30 EST


On Sat, Nov 9, 2019 at 2:43 PM Ondrej Mosnacek <omosnace@xxxxxxxxxx> wrote:

> > -struct itimerval;
> > -extern int do_setitimer(int which, struct itimerval *value,
> > - struct itimerval *ovalue);
> > -extern int do_getitimer(int which, struct itimerval *value);
> > +#ifdef CONFIG_POSIX_TIMERS
> > +extern void clear_itimer(void);
> > +#else
> > +static inline void clear_itimer(void) {}
> > +#endif
> >

> > @@ -249,6 +249,17 @@ int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue)
> > return 0;
> > }
> >
> > +#ifdef CONFIG_SECURITY_SELINUX
>
> Did you mean "#ifdef CONFIG_POSIX_TIMERS" here to match the header?

No, this part is intentional, CONFIG_POSIX_TIMERS already controls
whether itimer.c is
compiled in the first place, but this function is only needed when called from
the selinux driver.

> > - }
> > + if (IS_ENABLED(CONFIG_POSIX_TIMERS))
> > + clear_itimer();
>
> Since you already define a no-op fallback for the case of
> !IS_ENABLED(CONFIG_POSIX_TIMERS) in time.h, why not simply call
> clear_itimer() unconditionally?

Ah right, that was indeed my plan here when I changed the declaration
in the header, I just forgot to remove the if(). Fixed now.

Thanks for the review!

Arnd