From: Mike Habeck Date: Mon, 13 Aug 2007 22:13:08 +0000 (-0500) Subject: [IA64] SGI Altix : fix a force_interrupt bug on altix X-Git-Tag: v2.6.23-rc4~124^2~5 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=352b0ef50d98049bf022a31eaf2272f52e2f5219;p=linux-2.6 [IA64] SGI Altix : fix a force_interrupt bug on altix If the interrupt has been disabled, don't call the force_interrupt provider. Doing so can result in an infinite runaway interrupt loop. Signed-off-by: Mike Habeck Signed-off-by: Tony Luck --- diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c index bfa43e4c7e..3600473894 100644 --- a/arch/ia64/sn/kernel/irq.c +++ b/arch/ia64/sn/kernel/irq.c @@ -405,7 +405,10 @@ sn_call_force_intr_provider(struct sn_irq_info *sn_irq_info) struct sn_pcibus_provider *pci_provider; pci_provider = sn_pci_provider[sn_irq_info->irq_bridge_type]; - if (pci_provider && pci_provider->force_interrupt) + + /* Don't force an interrupt if the irq has been disabled */ + if (!(irq_desc[sn_irq_info->irq_irq].status & IRQ_DISABLED) && + pci_provider && pci_provider->force_interrupt) (*pci_provider->force_interrupt)(sn_irq_info); }