Fix RTC_AIE with CONFIG_HPET_EMULATE_RTC
PATCH 1/1 Fix RTC_AIE with CONFIG_HPET_EMULATE_RTC
In the current code, RTC_AIE doesn't work if the RTC relies on CONFIG_HPET_EMULATE_RTC because the code sets the RTC_AIE flag in hpet_set_rtc_irq_bit(). The interrupt handles does accidentally check for RTC_PIE and not RTC_AIE when comparing the time which was set in hpet_set_alarm_time().
This patch is against 2.6.24-rc5-mm1.
Signed-off-by Bernhard Walle <[email protected]>
--- arch/x86/kernel/hpet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/x86/kernel/hpet.c +1 -1
@@ -657,7 +657,7 @@ irqreturn_t hpet_rtc_interrupt(int irq, hpet_pie_count =0 ; } -if (hpet_rtc_flags &RTC_PIE && +if (hpet_rtc_flags &RTC_AIE && (curr_time.tm_sec == hpet_alarm_time.tm_sec) && (curr_time.tm_min == hpet_alarm_time.tm_min) && (curr_time.tm_hour == hpet_alarm_time.tm_hour))
Quoted 10 lines · Bernhard Walle
In the current code,
RTC_AIEdoesn't work if the RTC relies onCONFIG_HPET_EMULATE_RTCbecause the code sets theRTC_AIEflag inhpet_set_rtc_irq_bit(). The interrupt handles does accidentally check forRTC_PIEand notRTC_AIEwhen comparing the time which was set inhpet_set_alarm_time().This patch is against 2.6.24-rc5-mm1.
Signed-off-by Bernhard Walle <[email protected]>
Acked-by Clemens Ladisch <[email protected]>
Quoted 15 lines
--- arch/x86/kernel/hpet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/x86/kernel/hpet.c +1
-1@@ -657,7 +657,7 @@ irqreturn_t hpet_rtc_interrupt(int irq, hpet_pie_count =0 ; } -if (hpet_rtc_flags &RTC_PIE && +if (hpet_rtc_flags &RTC_AIE && (curr_time.tm_sec == hpet_alarm_time.tm_sec) && (curr_time.tm_min == hpet_alarm_time.tm_min) && (curr_time.tm_hour == hpet_alarm_time.tm_hour))