diff options
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_driver.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_driver.c b/drivers/infiniband/hw/ipath/ipath_driver.c index 13b9785e684c..e3a223209710 100644 --- a/drivers/infiniband/hw/ipath/ipath_driver.c +++ b/drivers/infiniband/hw/ipath/ipath_driver.c | |||
@@ -536,8 +536,6 @@ static void __devexit cleanup_device(struct ipath_devdata *dd) | |||
536 | { | 536 | { |
537 | int port; | 537 | int port; |
538 | 538 | ||
539 | ipath_shutdown_device(dd); | ||
540 | |||
541 | if (*dd->ipath_statusp & IPATH_STATUS_CHIP_PRESENT) { | 539 | if (*dd->ipath_statusp & IPATH_STATUS_CHIP_PRESENT) { |
542 | /* can't do anything more with chip; needs re-init */ | 540 | /* can't do anything more with chip; needs re-init */ |
543 | *dd->ipath_statusp &= ~IPATH_STATUS_CHIP_PRESENT; | 541 | *dd->ipath_statusp &= ~IPATH_STATUS_CHIP_PRESENT; |
@@ -634,6 +632,12 @@ static void __devexit ipath_remove_one(struct pci_dev *pdev) | |||
634 | 632 | ||
635 | ipath_cdbg(VERBOSE, "removing, pdev=%p, dd=%p\n", pdev, dd); | 633 | ipath_cdbg(VERBOSE, "removing, pdev=%p, dd=%p\n", pdev, dd); |
636 | 634 | ||
635 | /* | ||
636 | * disable the IB link early, to be sure no new packets arrive, which | ||
637 | * complicates the shutdown process | ||
638 | */ | ||
639 | ipath_shutdown_device(dd); | ||
640 | |||
637 | if (dd->verbs_dev) | 641 | if (dd->verbs_dev) |
638 | ipath_unregister_ib_device(dd->verbs_dev); | 642 | ipath_unregister_ib_device(dd->verbs_dev); |
639 | 643 | ||