8 Feb 15:32
[PATCH] [IA64] disable interrupts when exiting from ia64_mca_cmc_int_handler()
Jiri Kosina <jkosina <at> suse.cz>
2012-02-08 14:32:13 GMT
2012-02-08 14:32:13 GMT
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 <at> suse.cz>
---
arch/ia64/kernel/mca.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index 84fb405..8192009 100644
--- a/arch/ia64/kernel/mca.c
+++ b/arch/ia64/kernel/mca.c
@@ -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;
}
--
--
Jiri Kosina
SUSE Labs
(Continue reading)
I tested as best as I could the x86 changes and compiled some
of the others, but I don't have access to all the needed hardware
for testing. Reviewers and testers welcome!
The only change from the first version is the addition of a
proper Signed-off-by line.
This patch set is also available on branch on_each_cpu_ret_v2
at git://github.com/gby/linux.git
Signed-off-by: Gilad Ben-Yossef <gilad <at> benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra <at> chello.nl>
Reviewed-by: Michal Nazarewicz <mina86 <at> mina86.com>
CC: Michal Nazarewicz <mina86 <at> mina86.com>
CC: David Airlie <airlied <at> linux.ie>
But it isn't like there's a huge population of ia64 testers checking every
linux-next release. Petr's fix has seen some testing in the SLES11-SP2-RC series
the other three are just semantic sugar]
arch/ia64/kernel/setup.c | 19 +++++++++++++++++++
arch/ia64/sn/kernel/irq.c | 5 ++---
arch/ia64/sn/pci/pcibr/pcibr_provider.c | 3 +--
arch/ia64/sn/pci/tioca_provider.c | 4 ++--
4 files changed, 24 insertions(+), 7 deletions(-)
Petr Tesarik (1):
[IA64] Merge overlapping reserved regions at boot
Thomas Meyer (3):
ia64: tioca: Use kmemdup rather than duplicating its implementation
RSS Feed