Commit 220d36b4 authored by Giridhar Malavali's avatar Giridhar Malavali Committed by James Bottomley

[SCSI] qla2xxx: Change in setting UNLOADING flag and FC vports logout sequence...

[SCSI] qla2xxx: Change in setting UNLOADING flag and FC vports logout sequence while unloading qla2xxx driver.
Signed-off-by: default avatarGiridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: default avatarSaurav Kashyap <saurav.kashyap@qlogic.com>
Cc: <stable@vger.kernel.org> #3.7
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent a394aac8
...@@ -1615,8 +1615,7 @@ qla2x00_terminate_rport_io(struct fc_rport *rport) ...@@ -1615,8 +1615,7 @@ qla2x00_terminate_rport_io(struct fc_rport *rport)
* At this point all fcport's software-states are cleared. Perform any * At this point all fcport's software-states are cleared. Perform any
* final cleanup of firmware resources (PCBs and XCBs). * final cleanup of firmware resources (PCBs and XCBs).
*/ */
if (fcport->loop_id != FC_NO_LOOP_ID && if (fcport->loop_id != FC_NO_LOOP_ID) {
!test_bit(UNLOADING, &fcport->vha->dpc_flags)) {
if (IS_FWI2_CAPABLE(fcport->vha->hw)) if (IS_FWI2_CAPABLE(fcport->vha->hw))
fcport->vha->hw->isp_ops->fabric_logout(fcport->vha, fcport->vha->hw->isp_ops->fabric_logout(fcport->vha,
fcport->loop_id, fcport->d_id.b.domain, fcport->loop_id, fcport->d_id.b.domain,
......
...@@ -2755,6 +2755,7 @@ qla2x00_remove_one(struct pci_dev *pdev) ...@@ -2755,6 +2755,7 @@ qla2x00_remove_one(struct pci_dev *pdev)
ha->flags.host_shutting_down = 1; ha->flags.host_shutting_down = 1;
set_bit(UNLOADING, &base_vha->dpc_flags);
mutex_lock(&ha->vport_lock); mutex_lock(&ha->vport_lock);
while (ha->cur_vport_count) { while (ha->cur_vport_count) {
struct Scsi_Host *scsi_host; struct Scsi_Host *scsi_host;
...@@ -2784,8 +2785,6 @@ qla2x00_remove_one(struct pci_dev *pdev) ...@@ -2784,8 +2785,6 @@ qla2x00_remove_one(struct pci_dev *pdev)
"Error while clearing DRV-Presence.\n"); "Error while clearing DRV-Presence.\n");
} }
set_bit(UNLOADING, &base_vha->dpc_flags);
qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16);
qla2x00_dfs_remove(base_vha); qla2x00_dfs_remove(base_vha);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment