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

From: Pratyush Anand
Date: Tue Aug 02 2016 - 03:28:45 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".

These patch set initializes hpet_default_delta and hpet_t1_cmp before
interrupt can be raised.

Changes since RFC:
- Commit log of patches has been improved.
- RFCs were here: https://lkml.org/lkml/2016/6/21/35

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