W dniu 06.01.2022 o 09:46, Riwen Lu pisze: > 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 Indeed, my system is also affected. > Fixes: 2a4daadd4d3e5071 ("rtc: cmos: ignore bogus century byte") > > Signed-off-by: Riwen Lu <luriwen@xxxxxxxxxx> Reviewed-by: Mateusz Jończyk <mat.jonczyk@xxxxx> Cc: Alessandro Zummo <a.zummo@xxxxxxxxxxxx> Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> > --- > drivers/rtc/rtc-mc146818-lib.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/rtc/rtc-mc146818-lib.c b/drivers/rtc/rtc-mc146818-lib.c > 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; > > /*