From: Venkatesh Pallipadi rtc_lock is held during timer interrupts. So, we should block interrupts while holding it. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Andrew Morton --- 25-akpm/drivers/acpi/sleep/proc.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff -puN drivers/acpi/sleep/proc.c~rtc_lock-is-irq-safe drivers/acpi/sleep/proc.c --- 25/drivers/acpi/sleep/proc.c~rtc_lock-is-irq-safe 2005-03-13 13:19:38.000000000 -0800 +++ 25-akpm/drivers/acpi/sleep/proc.c 2005-03-13 13:19:38.000000000 -0800 @@ -84,10 +84,11 @@ static int acpi_system_alarm_seq_show(st u32 sec, min, hr; u32 day, mo, yr; unsigned char rtc_control = 0; + unsigned long flags; ACPI_FUNCTION_TRACE("acpi_system_alarm_seq_show"); - spin_lock(&rtc_lock); + spin_lock_irqsave(&rtc_lock, flags); sec = CMOS_READ(RTC_SECONDS_ALARM); min = CMOS_READ(RTC_MINUTES_ALARM); @@ -109,7 +110,7 @@ static int acpi_system_alarm_seq_show(st else yr = CMOS_READ(RTC_YEAR); - spin_unlock(&rtc_lock); + spin_unlock_irqrestore(&rtc_lock, flags); if (!(rtc_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) { BCD_TO_BIN(sec); _