Re: [PATCH] sysctl: fix proc_doulongvec_ms_jiffies_minmax()

From: Eric Dumazet
Date: Thu Jan 26 2017 - 13:08:16 EST


On Thu, 2017-01-26 at 09:25 -0800, Linus Torvalds wrote:
> On Wed, Jan 25, 2017 at 6:20 PM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote:
> >
> > We perform the conversion between kernel jiffies and ms only
> > when exporting kernel value to user space.
> >
> > We need to do the opposite operation when value is written
> > by user.
>
> Applied. The interface is really confusing - I had to check whether
> the min/max values were in jiffies or in ms, but it looks right. It
> would probably be good to verify any overflow conditions, but we do
> check the min/max after the conversion, so overflows are at least only
> an inconvenience, not a "you can set invalid values".
>
> The one overflow case I can imagine is trying to set some unlimited
> value, and now due to the conversion math it's not unlimited any more,
> and it just happened to work.
>
> But the current code is clearly wrong. Of course, something might end
> up depending on it being wrong, so..

Yes, these 'convdiv' and 'convmul' names are really confusing,
especially considering we either do :

val = convmul * val / convdiv;

or

val = convdiv * (*i) / convmul;

Probably should be renamed to something like :

user_units kernel_units

Maybe.

Thanks.