Messages in this thread | | | From | John Stultz <> | Date | Sun, 25 Sep 2016 23:02:04 -0700 | Subject | Re: [PATCH] timekeeping: Change type of nsec variable to unsigned in its calculation. |
| |
On Sun, Sep 25, 2016 at 10:45 PM, Liav Rehana <liavr@mellanox.com> wrote: > From: Liav Rehana <liavr@mellanox.com> > > During the calculation of the nsec variable in the inline function > timekeeping_delta_to_ns, it may undergo a sign extension if its msb > is set just before the shift. The sign extension may, in some cases, > gain it a value near the maximum value of the 64-bit range. This is > bad when it is later used in a division function, such as > __iter_div_u64_rem, where the amount of loops it will go through to > calculate the division will be too large. > The following commit fixes that chance of sign extension, while > maintaining the type of the nsec variable as signed for other > functions that use this variable, for possible legit negative > time intervals.
Apologies for my foggy memory here (just got off a plane). But remind me, is this something that you actually ran into, or is it more of just a theoretical concern?
If it is something that you did trip on, please describe your case in the changelog so that the proper urgency is applied when weighing if such a commit should go into -stable.
thanks -john
| |