[PATCH RFC 0/2] rtc-cmos: Workaround unwanted interrupt generation

From: Pratyush Anand
Date: Tue Jun 21 2016 - 00:56:42 EST


We have observed on few machines with rtc-cmos device that
hpet_rtc_interrupt() is called before cmos_do_probe() could call
hpet_rtc_timer_init(). It has not been observed during normal boot/reboot
of machines. It *sometime* happens when system is booted with kdump
secondary kernel. So, neither hpet_default_delta nor hpet_t1_cmp is
initialized by the time interrupt is raised in the given situation.
Therefore while loop of hpet_cnt_ahead() in hpet_rtc_timer_reinit() never
completes. This leads to "NMI watchdog: Watchdog detected hard LOCKUP on
cpu 0".

I am still clueless, how can an interrupt be raised before RTC is enabled.
But i do not have any idea about this device, so I am putting this patch as
RFC to get feedback from hpet/rtc-cmos developer. I am sure there would be
some better solution than this.



Pratyush Anand (2):
rtc/hpet: Factorize hpet_rtc_timer_init()
rtc/rtc-cmos: Initialize software counters before irq is registered

arch/x86/include/asm/hpet.h | 2 ++
arch/x86/kernel/hpet.c | 41 +++++++++++++++++++++++++++++++++++------
drivers/rtc/rtc-cmos.c | 13 ++++++++++++-
3 files changed, 49 insertions(+), 7 deletions(-)

--
2.5.5