Messages in this thread | | | Date | Wed, 6 May 2015 16:11:43 -0400 (EDT) | From | Nicolas Pitre <> | Subject | Re: [RFC][PATCH v2] ktime: Fix ktime_divns to do signed division |
| |
On Wed, 6 May 2015, John Stultz wrote:
> It was noted that the 32bit implementation of ktime_divns() > was doing unsigned division and didn't properly handle > negative values. > > This patch fixes the problem by checking and preserving > the sign bit, and then reapplying it if appropriate after > the division, it also changes the return type to a s64 > to make it more obvious this is expected. > [...] > > -# define ktime_divns(kt, div) (u64)((kt).tv64 / (div)) > +static inline s64 ktime_divns(const ktime_t kt, s64 div) > +{ > + /* > + * 32-bit implementation cannot handle negative divisors, > + * so catch them on 64bit as well. > + */ > + BUG_ON(div < 0); > + return (u64)((kt).tv64 / (div))
You forgot to remove the u64 cast?
Is there a reason why it was there originally?
Nicolas
| |