The patch titled rtc: fix CMOS time error after writing /proc/acpi/alarm has been added to the -mm tree. Its filename is rtc-fix-cmos-time-error-after-writing-proc-acpi-alarm.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: rtc: fix CMOS time error after writing /proc/acpi/alarm From: Huacai Chen <huacai.chen@xxxxxxxxx> When writing /proc/acpi/alarm in adjust mode, e.g. echo "+0000-00-00 00:00:15" >/proc/acpi/alarm The "century" field should be read and added to "year" field before writing, otherwise the CMOS time will go back to 2000 years ago, e.g. # cat /proc/acpi/alarm 0008-06-21 11:38:46 Then the system time may be reset to the date of manufacture after rebooting. This patch fixed this issue. Signed-off-by: Huacai Chen <huacai.chen@xxxxxxxxx> Acked-by: Pavel Machek <pavel@xxxxxxx> Acked-by: Zhao Yakui <yakui.zhao@xxxxxxxxx> Acked-by: Alessandro Zummo <a.zummo@xxxxxxxxxxxx> Cc: Len Brown <lenb@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/acpi/sleep/proc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff -puN drivers/acpi/sleep/proc.c~rtc-fix-cmos-time-error-after-writing-proc-acpi-alarm drivers/acpi/sleep/proc.c --- a/drivers/acpi/sleep/proc.c~rtc-fix-cmos-time-error-after-writing-proc-acpi-alarm +++ a/drivers/acpi/sleep/proc.c @@ -315,8 +315,11 @@ acpi_system_write_alarm(struct file *fil cmos_bcd_write(day, acpi_gbl_FADT.day_alarm, rtc_control); if (acpi_gbl_FADT.month_alarm) cmos_bcd_write(mo, acpi_gbl_FADT.month_alarm, rtc_control); - if (acpi_gbl_FADT.century) + if (acpi_gbl_FADT.century) { + if (adjust) + yr += cmos_bcd_read(acpi_gbl_FADT.century, rtc_control) * 100; cmos_bcd_write(yr / 100, acpi_gbl_FADT.century, rtc_control); + } /* enable the rtc alarm interrupt */ rtc_control |= RTC_AIE; CMOS_WRITE(rtc_control, RTC_CONTROL); _ Patches currently in -mm which might be from huacai.chen@xxxxxxxxx are rtc-fix-cmos-time-error-after-writing-proc-acpi-alarm.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html