[PATCH RESEND v2 0/6] rtc,x86: CMOS RTC fixes

Mateusz Jończyk
2021-10-17T19:39:38Z

Hello,

This patch series fixes some issues in the RTC CMOS handling code.

First three patches fix bugs in drivers/rtc:
1. Fix rtc_lock usage in cmos_set_alarm() in rtc-cmos.c.
2. Do not touch RTC alarm registers when the RTC update is in progress.
(On some Intel chipsets, this causes bogus values being read or writes to
fail silently.)
3. Fix presence check of the RTC CMOS: the clock was misdetected as broken on
one of my systems.

Patches 1 and 2 are Cced stable. I'm going to submit patch 3 manually
to stable after some regression testing in master.

Last three patches contain fixes for arch/x86/rtc.c: duplicate code removal
and a renaming of a function. I'd prefer that they be merged together
with patch nr 3.

I'm also considering whether function x86_wallclock_init() in
arch/x86/kernel/x86_init.c should call mc146818_does_rtc_work() to make sure
that the CMOS RTC is present and behaves itself. This might be useful.

Patch nr 7:
Revert "rtc: cmos: Replace spin_lock_irqsave with spin_lock in hard IRQ"
was made obsolete by mainlining of
commit 13be2efc390a ("rtc: cmos: Disable irq around direct invocation of cmos_interrupt()")

so I've dropped it from this series.

This is my first patch series, so please review carefully.

Greetings,
Mateusz

Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>