Re: [PATCH v1] rtc: cmos: Evaluate century appropriate

From: Eric Wong
Date: Tue Jan 11 2022 - 13:08:13 EST


Riwen Lu <luriwen@xxxxxxxxxx> wrote:
> There's limiting the year to 2069. When setting the rtc year to 2070,
> reading it returns 1970. Evaluate century starting from 19 to count the
> correct year.
>
> $ sudo date -s 20700106
> Mon 06 Jan 2070 12:00:00 AM CST
> $ sudo hwclock -w
> $ sudo hwclock -r
> 1970-01-06 12:00:49.604968+08:00
>
> Fixes: 2a4daadd4d3e5071 ("rtc: cmos: ignore bogus century byte")
>
> Signed-off-by: Riwen Lu <luriwen@xxxxxxxxxx>

Oops, I'm not good at arithmetic :x Thanks for this fix.

Acked-by: Eric Wong <e@xxxxxxxxx>

> index dcfaf09946ee..2065842f775d 100644
> --- a/drivers/rtc/rtc-mc146818-lib.c
> +++ b/drivers/rtc/rtc-mc146818-lib.c
> @@ -104,7 +104,7 @@ unsigned int mc146818_get_time(struct rtc_time *time)
> time->tm_year += real_year - 72;
> #endif
>
> - if (century > 20)
> + if (century > 19)
> time->tm_year += (century - 19) * 100;
>
> /*