aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx
diff options
context:
space:
mode:
authorGiridhar Malavali <giridhar.malavali@qlogic.com>2012-11-21 02:39:55 -0500
committerJames Bottomley <JBottomley@Parallels.com>2012-11-30 04:36:55 -0500
commit220d36b4c2d96446e88d561714829ec5801b4fc7 (patch)
tree41f654da8b6542ec84a0d5d1cce96b8f92d63b0b /drivers/scsi/qla2xxx
parenta394aac88506159e047630fc90dc2242568382d8 (diff)
[SCSI] qla2xxx: Change in setting UNLOADING flag and FC vports logout sequence while unloading qla2xxx driver.
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Cc: <stable@vger.kernel.org> #3.7 Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/qla2xxx')
-rw-r--r--drivers/scsi/qla2xxx/qla_attr.c3
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c3
2 files changed, 2 insertions, 4 deletions
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
index 1c28215f8be..83d798428c1 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
@@ -1615,8 +1615,7 @@ qla2x00_terminate_rport_io(struct fc_rport *rport)
1615 * At this point all fcport's software-states are cleared. Perform any 1615 * At this point all fcport's software-states are cleared. Perform any
1616 * final cleanup of firmware resources (PCBs and XCBs). 1616 * final cleanup of firmware resources (PCBs and XCBs).
1617 */ 1617 */
1618 if (fcport->loop_id != FC_NO_LOOP_ID && 1618 if (fcport->loop_id != FC_NO_LOOP_ID) {
1619 !test_bit(UNLOADING, &fcport->vha->dpc_flags)) {
1620 if (IS_FWI2_CAPABLE(fcport->vha->hw)) 1619 if (IS_FWI2_CAPABLE(fcport->vha->hw))
1621 fcport->vha->hw->isp_ops->fabric_logout(fcport->vha, 1620 fcport->vha->hw->isp_ops->fabric_logout(fcport->vha,
1622 fcport->loop_id, fcport->d_id.b.domain, 1621 fcport->loop_id, fcport->d_id.b.domain,
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index a60396725e8..f4b1fc80019 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -2755,6 +2755,7 @@ qla2x00_remove_one(struct pci_dev *pdev)
2755 2755
2756 ha->flags.host_shutting_down = 1; 2756 ha->flags.host_shutting_down = 1;
2757 2757
2758 set_bit(UNLOADING, &base_vha->dpc_flags);
2758 mutex_lock(&ha->vport_lock); 2759 mutex_lock(&ha->vport_lock);
2759 while (ha->cur_vport_count) { 2760 while (ha->cur_vport_count) {
2760 struct Scsi_Host *scsi_host; 2761 struct Scsi_Host *scsi_host;
@@ -2784,8 +2785,6 @@ qla2x00_remove_one(struct pci_dev *pdev)
2784 "Error while clearing DRV-Presence.\n"); 2785 "Error while clearing DRV-Presence.\n");
2785 } 2786 }
2786 2787
2787 set_bit(UNLOADING, &base_vha->dpc_flags);
2788
2789 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); 2788 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16);
2790 2789
2791 qla2x00_dfs_remove(base_vha); 2790 qla2x00_dfs_remove(base_vha);