diff options
| author | Giridhar Malavali <giridhar.malavali@qlogic.com> | 2012-11-21 02:39:55 -0500 |
|---|---|---|
| committer | James Bottomley <JBottomley@Parallels.com> | 2012-11-30 04:36:55 -0500 |
| commit | 220d36b4c2d96446e88d561714829ec5801b4fc7 (patch) | |
| tree | 41f654da8b6542ec84a0d5d1cce96b8f92d63b0b /drivers | |
| parent | a394aac88506159e047630fc90dc2242568382d8 (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')
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_attr.c | 3 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 3 |
2 files changed, 2 insertions, 4 deletions
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c index 1c28215f8bed..83d798428c10 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 a60396725e8a..f4b1fc800194 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); |
