提交 ff164ae3 编写于 作者: R Riwen Lu 提交者: Alexandre Belloni

rtc: cmos: Evaluate century appropriate

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: 2a4daadd ("rtc: cmos: ignore bogus century byte")
Signed-off-by: NRiwen Lu <luriwen@kylinos.cn>
Acked-by: NEric Wong <e@80x24.org>
Reviewed-by: NMateusz Jończyk <mat.jonczyk@o2.pl>
Signed-off-by: NAlexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20220106084609.1223688-1-luriwen@kylinos.cn
上级 900ed72c
...@@ -159,7 +159,7 @@ int mc146818_get_time(struct rtc_time *time) ...@@ -159,7 +159,7 @@ int mc146818_get_time(struct rtc_time *time)
#endif #endif
#ifdef CONFIG_ACPI #ifdef CONFIG_ACPI
if (p.century > 20) if (p.century > 19)
time->tm_year += (p.century - 19) * 100; time->tm_year += (p.century - 19) * 100;
#endif #endif
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册