| From ff164ae39b82ee483b24579c8e22a13a8ce5bd04 Mon Sep 17 00:00:00 2001 |
| From: Riwen Lu <luriwen@kylinos.cn> |
| Date: Thu, 6 Jan 2022 16:46:09 +0800 |
| Subject: rtc: cmos: Evaluate century appropriate |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Riwen Lu <luriwen@kylinos.cn> |
| |
| commit ff164ae39b82ee483b24579c8e22a13a8ce5bd04 upstream. |
| |
| 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@kylinos.cn> |
| Acked-by: Eric Wong <e@80x24.org> |
| Reviewed-by: Mateusz Jończyk <mat.jonczyk@o2.pl> |
| Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> |
| Link: https://lore.kernel.org/r/20220106084609.1223688-1-luriwen@kylinos.cn |
| Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl> # preparation for stable |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/rtc/rtc-mc146818-lib.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/rtc/rtc-mc146818-lib.c |
| +++ b/drivers/rtc/rtc-mc146818-lib.c |
| @@ -83,7 +83,7 @@ unsigned int mc146818_get_time(struct rt |
| time->tm_year += real_year - 72; |
| #endif |
| |
| - if (century > 20) |
| + if (century > 19) |
| time->tm_year += (century - 19) * 100; |
| |
| /* |