Re: [PATCH] x86: mce: always use 64-bit timestamps

From: Borislav Petkov
Date: Mon Jun 18 2018 - 08:51:16 EST


On Mon, Jun 18, 2018 at 12:06:46PM +0200, Arnd Bergmann wrote:
> The machine check timestamp uses get_seconds(), which returns an 'unsigned long'
> number that might overflow on 32-bit architectures (in the distant future)
> and is therefore deprecated.
>
> The normal replacement would be ktime_get_real_seconds(), but that needs to
> use a sequence lock that might cause a deadlock if the mce happens at just
> the wrong moment. The __ktime_get_real_seconds() skips that lock and is
> safer here, but has a miniscule risk of returning the wrong time when we read
> it on a 32-bit architecture at the same time as updating the epoch, i.e.
> from before y2106 overflow time to after, or vice versa.
>
> This seems to be an acceptable risk in this particular case, and is the
> same thing we do in kdb.
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> arch/x86/kernel/cpu/mcheck/mce.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

Applied, thanks.

--
Regards/Gruss,
Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.