diff options
author | Paul Mackerras <paulus@samba.org> | 2007-08-28 07:56:11 +0200 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-08-28 07:56:11 +0200 |
commit | 35438c4327df18dbf5e7f597b69299119f4a14de (patch) | |
tree | a4589d731015db93f2eba8f84ffb1f48a8084020 /arch/ia64/sn/kernel | |
parent | [POWERPC] Stop include asm-ppc when building ARCH=powerpc for ppc32 (diff) | |
parent | Linux 2.6.23-rc4 (diff) | |
download | linux-35438c4327df18dbf5e7f597b69299119f4a14de.tar.xz linux-35438c4327df18dbf5e7f597b69299119f4a14de.zip |
Merge branch 'linux-2.6' into for-2.6.24
Diffstat (limited to 'arch/ia64/sn/kernel')
-rw-r--r-- | arch/ia64/sn/kernel/irq.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c index 7f6d2360a262..360047389449 100644 --- a/arch/ia64/sn/kernel/irq.c +++ b/arch/ia64/sn/kernel/irq.c @@ -256,6 +256,13 @@ struct irq_chip irq_type_sn = { .set_affinity = sn_set_affinity_irq }; +ia64_vector sn_irq_to_vector(int irq) +{ + if (irq >= IA64_NUM_VECTORS) + return 0; + return (ia64_vector)irq; +} + unsigned int sn_local_vector_to_irq(u8 vector) { return (CPU_VECTOR_TO_IRQ(smp_processor_id(), vector)); @@ -398,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); } |