aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_attr.c
diff options
context:
space:
mode:
authorAndrew Vasquez <andrew.vasquez@qlogic.com>2012-02-09 14:15:43 -0500
committerJames Bottomley <JBottomley@Parallels.com>2012-02-19 09:19:18 -0500
commitaf11f64dfd634e8116b7c4e2422e0e0c698b91c1 (patch)
tree9a16df493c3181bc7296f8c3420df73ad54fe586 /drivers/scsi/qla2xxx/qla_attr.c
parent0b91d1169e5382040d80622fe79e40c60ff88555 (diff)
[SCSI] qla2xxx: Perform implicit logout during rport tear-down.
During rport tear-down, make sure we do an implicit LOGO of the fcport in our firmware to try to clear any residual commands associated with that fcport. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_attr.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_attr.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
index 5433f95f3edd..e21db2f78224 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
@@ -1647,10 +1647,14 @@ qla2x00_terminate_rport_io(struct fc_rport *rport)
1647 * final cleanup of firmware resources (PCBs and XCBs). 1647 * final cleanup of firmware resources (PCBs and XCBs).
1648 */ 1648 */
1649 if (fcport->loop_id != FC_NO_LOOP_ID && 1649 if (fcport->loop_id != FC_NO_LOOP_ID &&
1650 !test_bit(UNLOADING, &fcport->vha->dpc_flags)) 1650 !test_bit(UNLOADING, &fcport->vha->dpc_flags)) {
1651 fcport->vha->hw->isp_ops->fabric_logout(fcport->vha, 1651 if (IS_FWI2_CAPABLE(fcport->vha->hw))
1652 fcport->loop_id, fcport->d_id.b.domain, 1652 fcport->vha->hw->isp_ops->fabric_logout(fcport->vha,
1653 fcport->d_id.b.area, fcport->d_id.b.al_pa); 1653 fcport->loop_id, fcport->d_id.b.domain,
1654 fcport->d_id.b.area, fcport->d_id.b.al_pa);
1655 else
1656 qla2x00_port_logout(fcport->vha, fcport);
1657 }
1654} 1658}
1655 1659
1656static int 1660static int