IB/ipath: Disable IB link earlier in shutdown sequence

Move the code that shuts down the IB link earlier in the unload
process, to be sure no new packets can arrive while we are unloading.

Signed-off-by: Dave Olson <dave.olson@qlogic.com>
Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
Bryan O'Sullivan 2007-03-15 14:45:11 -07:00 committed by Roland Dreier
parent 490462c268
commit 53c1d2c943

View File

@ -536,8 +536,6 @@ static void __devexit cleanup_device(struct ipath_devdata *dd)
{ {
int port; int port;
ipath_shutdown_device(dd);
if (*dd->ipath_statusp & IPATH_STATUS_CHIP_PRESENT) { if (*dd->ipath_statusp & IPATH_STATUS_CHIP_PRESENT) {
/* can't do anything more with chip; needs re-init */ /* can't do anything more with chip; needs re-init */
*dd->ipath_statusp &= ~IPATH_STATUS_CHIP_PRESENT; *dd->ipath_statusp &= ~IPATH_STATUS_CHIP_PRESENT;
@ -634,6 +632,12 @@ static void __devexit ipath_remove_one(struct pci_dev *pdev)
ipath_cdbg(VERBOSE, "removing, pdev=%p, dd=%p\n", pdev, dd); ipath_cdbg(VERBOSE, "removing, pdev=%p, dd=%p\n", pdev, dd);
/*
* disable the IB link early, to be sure no new packets arrive, which
* complicates the shutdown process
*/
ipath_shutdown_device(dd);
if (dd->verbs_dev) if (dd->verbs_dev)
ipath_unregister_ib_device(dd->verbs_dev); ipath_unregister_ib_device(dd->verbs_dev);