]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
SCSI: qla2xxx: Change in setting UNLOADING flag and FC vports logout sequence while...
authorGiridhar Malavali <giridhar.malavali@qlogic.com>
Wed, 21 Nov 2012 07:39:55 +0000 (02:39 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Jan 2013 16:45:56 +0000 (08:45 -0800)
commit 220d36b4c2d96446e88d561714829ec5801b4fc7 upstream.

Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/qla2xxx/qla_attr.c
drivers/scsi/qla2xxx/qla_os.c

index 1c28215f8bede329f4257838008f0625cd849f2f..83d798428c101c0740d5d864c8fb74ef8a3e21d9 100644 (file)
@@ -1615,8 +1615,7 @@ qla2x00_terminate_rport_io(struct fc_rport *rport)
         * At this point all fcport's software-states are cleared.  Perform any
         * final cleanup of firmware resources (PCBs and XCBs).
         */
-       if (fcport->loop_id != FC_NO_LOOP_ID &&
-           !test_bit(UNLOADING, &fcport->vha->dpc_flags)) {
+       if (fcport->loop_id != FC_NO_LOOP_ID) {
                if (IS_FWI2_CAPABLE(fcport->vha->hw))
                        fcport->vha->hw->isp_ops->fabric_logout(fcport->vha,
                            fcport->loop_id, fcport->d_id.b.domain,
index a60396725e8a7796b91b8c45a4a1295229f19163..f4b1fc800194229bc2d4e630f670c4f0a01c82f8 100644 (file)
@@ -2755,6 +2755,7 @@ qla2x00_remove_one(struct pci_dev *pdev)
 
        ha->flags.host_shutting_down = 1;
 
+       set_bit(UNLOADING, &base_vha->dpc_flags);
        mutex_lock(&ha->vport_lock);
        while (ha->cur_vport_count) {
                struct Scsi_Host *scsi_host;
@@ -2784,8 +2785,6 @@ qla2x00_remove_one(struct pci_dev *pdev)
                            "Error while clearing DRV-Presence.\n");
        }
 
-       set_bit(UNLOADING, &base_vha->dpc_flags);
-
        qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16);
 
        qla2x00_dfs_remove(base_vha);