Re: [PATCH stable] x86/tsc: Prevent result truncation on 32 bit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 12, 2018 at 02:42:08PM +0200, Thomas Gleixner wrote:
> Subject: x86/tsc: Prevent result truncation on 32 bit
> From: Chuanhua Lei <chuanhua.lei@xxxxxxxxxxxxxxx>
> Date: Thu Sep 6 18:03:23 2018 +0800
> 
> From: Chuanhua Lei <chuanhua.lei@xxxxxxxxxxxxxxx>
> 
> Commit 17f6bac2249356c795339e03a0742cd79be3cab8 upstream.
> 
> Loops per jiffy is calculated by multiplying tsc_khz with 1e3 and then
> dividing it by HZ.
>     
> Both tsc_khz and the temporary variable holding the multiplication result
> are of type unsigned long, so on 32bit the result is truncated to the lower
> 32bit.
>     
> Use u64 as type for the temporary variable and cast tsc_khz to it before
> multiplying.
>     
> [ tglx: Backport to stable. Due to massive code changes is the upstream
>   	commit not applicable anymore. The issue has gone unnoticed in
>   	kernels pre 4.19 because the bogus LPJ value gets fixed up in a
>   	later stage of early boot, but it still might cause subtle and hard
>   	to debug issues between these two points. ]

Thanks for the backport, now queued up.

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux