aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/pci_sabre.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc64/kernel/pci_sabre.c')
-rw-r--r--arch/sparc64/kernel/pci_sabre.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/arch/sparc64/kernel/pci_sabre.c b/arch/sparc64/kernel/pci_sabre.c
index caa7aeed5d14..846c1205aa9a 100644
--- a/arch/sparc64/kernel/pci_sabre.c
+++ b/arch/sparc64/kernel/pci_sabre.c
@@ -544,10 +544,10 @@ static unsigned int sabre_irq_build(struct pci_pbm_info *pbm,
544 struct pci_dev *pdev, 544 struct pci_dev *pdev,
545 unsigned int ino) 545 unsigned int ino)
546{ 546{
547 struct ino_bucket *bucket;
548 unsigned long imap, iclr; 547 unsigned long imap, iclr;
549 unsigned long imap_off, iclr_off; 548 unsigned long imap_off, iclr_off;
550 int inofixup = 0; 549 int inofixup = 0;
550 int virt_irq;
551 551
552 ino &= PCI_IRQ_INO; 552 ino &= PCI_IRQ_INO;
553 if (ino < SABRE_ONBOARD_IRQ_BASE) { 553 if (ino < SABRE_ONBOARD_IRQ_BASE) {
@@ -573,23 +573,23 @@ static unsigned int sabre_irq_build(struct pci_pbm_info *pbm,
573 if ((ino & 0x20) == 0) 573 if ((ino & 0x20) == 0)
574 inofixup = ino & 0x03; 574 inofixup = ino & 0x03;
575 575
576 bucket = __bucket(build_irq(inofixup, iclr, imap)); 576 virt_irq = build_irq(inofixup, iclr, imap, IBF_PCI);
577 bucket->flags |= IBF_PCI;
578 577
579 if (pdev) { 578 if (pdev) {
580 struct pcidev_cookie *pcp = pdev->sysdata; 579 struct pcidev_cookie *pcp = pdev->sysdata;
581 580
582 if (pdev->bus->number != pcp->pbm->pci_first_busno) { 581 if (pdev->bus->number != pcp->pbm->pci_first_busno) {
583 struct pci_controller_info *p = pcp->pbm->parent; 582 struct pci_controller_info *p = pcp->pbm->parent;
584 struct irq_desc *d = bucket->irq_info;
585 583
586 d->pre_handler = sabre_wsync_handler; 584 irq_install_pre_handler(virt_irq,
587 d->pre_handler_arg1 = pdev; 585 sabre_wsync_handler,
588 d->pre_handler_arg2 = (void *) 586 pdev,
589 p->pbm_A.controller_regs + SABRE_WRSYNC; 587 (void *)
588 p->pbm_A.controller_regs +
589 SABRE_WRSYNC);
590 } 590 }
591 } 591 }
592 return __irq(bucket); 592 return virt_irq;
593} 593}
594 594
595/* SABRE error handling support. */ 595/* SABRE error handling support. */