Re: [PATCH] kernel: mark all struct k_clock instances const

From: Christoph Hellwig
Date: Tue May 23 2017 - 00:49:22 EST


On Tue, May 23, 2017 at 12:17:31AM +0200, Thomas Gleixner wrote:
> On Mon, 15 May 2017, Christoph Hellwig wrote:
>
> > And keep a pointer to it instead of a copy in the posix_clocks array.
> >
> > Based on similar changes in the Grsecurity patchset, but redone from
> > scratch including a few tweaks.
>
> Hmm, that adds another level of indirection, but yes, we can do it.
>
> > diff --git a/drivers/char/mmtimer.c b/drivers/char/mmtimer.c
> > index 0e7fcb04f01e..e501403dd860 100644
> > --- a/drivers/char/mmtimer.c
> > +++ b/drivers/char/mmtimer.c
> > @@ -53,7 +53,7 @@ MODULE_LICENSE("GPL");
> >
> > #define RTC_BITS 55 /* 55 bits for this implementation */
> >
> > -static struct k_clock sgi_clock;
> > +static const struct k_clock sgi_clock;
>
> Bah. This mmtimer which is used by 3 people in the world requires that we
> keep the register_clock() function around after init and even export it.

We can require the driver to be built into the kernel, which seems pretty
reasonable for a timer. It's only selectable on IA64 anyway.