aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath/ipath_driver.c
diff options
context:
space:
mode:
authorBryan O'Sullivan <bos@pathscale.com>2006-11-08 20:44:58 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-11-08 21:29:25 -0500
commit51f65ebccf55121832c265838f93949f898b12ff (patch)
tree865c22f474dfab5f026b2497a0d0d5662bd5ec71 /drivers/infiniband/hw/ipath/ipath_driver.c
parent43539c38cd8edb915d1f0e1f55dcb70638b4cc8e (diff)
[PATCH] IB/ipath - program intconfig register using new HT irq hook
Eric's changes to the htirq infrastructure require corresponding modifications to the ipath HT driver code so that interrupts are still delivered properly. Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com> Cc: Eric W. Biederman <ebiederm@xmission.com> Cc: Roland Dreier <rdreier@cisco.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_driver.c')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_driver.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_driver.c b/drivers/infiniband/hw/ipath/ipath_driver.c
index b4ffaa7bcbb7..09a13c1fc46a 100644
--- a/drivers/infiniband/hw/ipath/ipath_driver.c
+++ b/drivers/infiniband/hw/ipath/ipath_driver.c
@@ -304,7 +304,7 @@ static int __devinit ipath_init_one(struct pci_dev *pdev,
304 } 304 }
305 addr = pci_resource_start(pdev, 0); 305 addr = pci_resource_start(pdev, 0);
306 len = pci_resource_len(pdev, 0); 306 len = pci_resource_len(pdev, 0);
307 ipath_cdbg(VERBOSE, "regbase (0) %llx len %d irq %x, vend %x/%x " 307 ipath_cdbg(VERBOSE, "regbase (0) %llx len %d pdev->irq %d, vend %x/%x "
308 "driver_data %lx\n", addr, len, pdev->irq, ent->vendor, 308 "driver_data %lx\n", addr, len, pdev->irq, ent->vendor,
309 ent->device, ent->driver_data); 309 ent->device, ent->driver_data);
310 310
@@ -467,15 +467,15 @@ static int __devinit ipath_init_one(struct pci_dev *pdev,
467 * check 0 irq after we return from chip-specific bus setup, since 467 * check 0 irq after we return from chip-specific bus setup, since
468 * that can affect this due to setup 468 * that can affect this due to setup
469 */ 469 */
470 if (!pdev->irq) 470 if (!dd->ipath_irq)
471 ipath_dev_err(dd, "irq is 0, BIOS error? Interrupts won't " 471 ipath_dev_err(dd, "irq is 0, BIOS error? Interrupts won't "
472 "work\n"); 472 "work\n");
473 else { 473 else {
474 ret = request_irq(pdev->irq, ipath_intr, IRQF_SHARED, 474 ret = request_irq(dd->ipath_irq, ipath_intr, IRQF_SHARED,
475 IPATH_DRV_NAME, dd); 475 IPATH_DRV_NAME, dd);
476 if (ret) { 476 if (ret) {
477 ipath_dev_err(dd, "Couldn't setup irq handler, " 477 ipath_dev_err(dd, "Couldn't setup irq handler, "
478 "irq=%u: %d\n", pdev->irq, ret); 478 "irq=%d: %d\n", dd->ipath_irq, ret);
479 goto bail_iounmap; 479 goto bail_iounmap;
480 } 480 }
481 } 481 }
@@ -637,11 +637,10 @@ static void __devexit ipath_remove_one(struct pci_dev *pdev)
637 * free up port 0 (kernel) rcvhdr, egr bufs, and eventually tid bufs 637 * free up port 0 (kernel) rcvhdr, egr bufs, and eventually tid bufs
638 * for all versions of the driver, if they were allocated 638 * for all versions of the driver, if they were allocated
639 */ 639 */
640 if (pdev->irq) { 640 if (dd->ipath_irq) {
641 ipath_cdbg(VERBOSE, 641 ipath_cdbg(VERBOSE, "unit %u free irq %d\n",
642 "unit %u free_irq of irq %x\n", 642 dd->ipath_unit, dd->ipath_irq);
643 dd->ipath_unit, pdev->irq); 643 dd->ipath_f_free_irq(dd);
644 free_irq(pdev->irq, dd);
645 } else 644 } else
646 ipath_dbg("irq is 0, not doing free_irq " 645 ipath_dbg("irq is 0, not doing free_irq "
647 "for unit %u\n", dd->ipath_unit); 646 "for unit %u\n", dd->ipath_unit);