[SCSI] isci: improvements in driver unloading routine
authorAndrzej Jakowski <andrzej.jakowski@intel.com>
Fri, 10 Feb 2012 09:18:54 +0000 (01:18 -0800)
committerJames Bottomley <JBottomley@Parallels.com>
Wed, 29 Feb 2012 22:24:41 +0000 (16:24 -0600)
This patch fixes scenario where driver removal should be possible
only when driver is in READY state. Also it removes redundant
invocation of routine disabling SCU interrupts - this method is
called somewhere else in driver deinitialization path.

Signed-off-by: Andrzej Jakowski <andrzej.jakowski@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/isci/init.c

index c9af456e7dfe5b6639bd9f0a35758d1a0f26d5e3..5137db5a5d85f8ea2a4a1b22350cfdc5b83f2569 100644 (file)
@@ -60,6 +60,7 @@
 #include <linux/efi.h>
 #include <asm/string.h>
 #include <scsi/scsi_host.h>
+#include "host.h"
 #include "isci.h"
 #include "task.h"
 #include "probe_roms.h"
@@ -552,9 +553,9 @@ static void __devexit isci_pci_remove(struct pci_dev *pdev)
        int i;
 
        for_each_isci_host(i, ihost, pdev) {
+               wait_for_start(ihost);
                isci_unregister(ihost);
                isci_host_deinit(ihost);
-               sci_controller_disable_interrupts(ihost);
        }
 }