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

