[PATCH][next] rtc: msc313: Fix unintentional sign extension issue on left shift of a u16

Daniel Palmer daniel at 0x0f.com
Wed Sep 29 05:56:36 PDT 2021


Hi Romain,

On Tue, 28 Sept 2021 at 22:55, Romain Perier <romain.perier at gmail.com> wrote:
>
> Hi,
>
> Le mar. 28 sept. 2021 à 15:31, Daniel Palmer <daniel at 0x0f.com> a écrit :
> The crazy stuff being, I ran rtctest from selftests and rtc-range (1)
> that tests a variety
> of dates including 2038 and 2106 for example. Both tests passed :) (probably
> because *this case* specifically did not happen while running the test)

I suspect it works because for reading the time because seconds is a
u32 not unsigned long like the other functions.
So if the high word of the register is read, is promoted to a wider
type and sign extended it doesn't actually matter because it gets
truncated to 32 bits so the sign extended part is gone.

Cheers,

Daniel



More information about the linux-arm-kernel mailing list