aboutsummaryrefslogtreecommitdiff
path: root/arch/sparc64/kernel/pci_msi.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-22 19:22:56 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-22 19:22:56 -0700
commit5f48b338cd28f4095697a174d7e3e72084aca893 (patch)
tree3e425801e8da2ffdfd6a88c3f494032bc512a5fa /arch/sparc64/kernel/pci_msi.c
parentf09cc910fe3af7e63298105bc0482653eb534c3c (diff)
parent29f139ce27c7e64a3e8575afa8deb46cde09db0a (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: [SPARC64]: ARRAY_SIZE() cleanup [SPARC64]: small Makefile cleanups [SPARC64]: Stop using __do_IRQ(). [SPARC64]: Update defconfig.
Diffstat (limited to 'arch/sparc64/kernel/pci_msi.c')
-rw-r--r--arch/sparc64/kernel/pci_msi.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/arch/sparc64/kernel/pci_msi.c b/arch/sparc64/kernel/pci_msi.c
index 31a165fd3e4..d6d64b44af6 100644
--- a/arch/sparc64/kernel/pci_msi.c
+++ b/arch/sparc64/kernel/pci_msi.c
@@ -28,8 +28,15 @@ static irqreturn_t sparc64_msiq_interrupt(int irq, void *cookie)
unsigned long msi;
err = ops->dequeue_msi(pbm, msiqid, &head, &msi);
- if (likely(err > 0))
- __do_IRQ(pbm->msi_irq_table[msi - pbm->msi_first]);
+ if (likely(err > 0)) {
+ struct irq_desc *desc;
+ unsigned int virt_irq;
+
+ virt_irq = pbm->msi_irq_table[msi - pbm->msi_first];
+ desc = irq_desc + virt_irq;
+
+ desc->handle_irq(virt_irq, desc);
+ }
if (unlikely(err < 0))
goto err_dequeue;
@@ -128,7 +135,8 @@ int sparc64_setup_msi_irq(unsigned int *virt_irq_p,
if (!*virt_irq_p)
goto out_err;
- set_irq_chip(*virt_irq_p, &msi_irq);
+ set_irq_chip_and_handler_name(*virt_irq_p, &msi_irq,
+ handle_simple_irq, "MSI");
err = alloc_msi(pbm);
if (unlikely(err < 0))