]> rtime.felk.cvut.cz Git - linux-imx.git/commitdiff
[IA64] disable interrupts when exiting from ia64_mca_cmc_int_handler()
authorJiri Kosina <jkosina@suse.cz>
Wed, 8 Feb 2012 14:32:13 +0000 (15:32 +0100)
committerTony Luck <tony.luck@intel.com>
Wed, 8 Feb 2012 22:34:03 +0000 (14:34 -0800)
SAL specification mandates that ia64_mca_log_sal_error_record() gets
called with interrupts enabled, and that's why ia64_mca_cmc_int_handler()
is enabling them. It however forgets to re-disable them when exiting,
which triggers WARN_ON() in generic IRQ handler.

Disable the interrupts again before exiting. This is analogous to
a3967685745 ("[IA64] disable interrupts at end of ia64_mca_cpe_int_handler()").

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/mca.c

index 84fb405eee87cfc4be613dd20c5636af157e2f9a..8192009cb92470b3b040653fce1c7311456504a8 100644 (file)
@@ -1447,6 +1447,8 @@ out:
        /* Get the CMC error record and log it */
        ia64_mca_log_sal_error_record(SAL_INFO_TYPE_CMC);
 
+       local_irq_disable();
+
        return IRQ_HANDLED;
 }