[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20180912184100.GC10317@kroah.com>
Date: Wed, 12 Sep 2018 20:41:00 +0200
From: Greg KH <greg@...ah.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: LKML <linux-kernel@...r.kernel.org>, stable@...r.kernel.org
Subject: Re: [PATCH stable] x86/tsc: Prevent result truncation on 32 bit
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@...ux.intel.com>
> Date: Thu Sep 6 18:03:23 2018 +0800
>
> From: Chuanhua Lei <chuanhua.lei@...ux.intel.com>
>
> 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
Powered by blists - more mailing lists