summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_os.c
diff options
context:
space:
mode:
authorQuinn Tran2018-08-02 22:16:44 +0200
committerMartin K. Petersen2018-08-02 22:56:18 +0200
commit48acad099074984f6b0b6e4da011856ba25d12ba (patch)
treefc778df767e97dc08b50a2bded6705e2a75caddd /drivers/scsi/qla2xxx/qla_os.c
parentscsi: qla2xxx: Cleanup for N2N code (diff)
downloadkernel-qcow2-linux-48acad099074984f6b0b6e4da011856ba25d12ba.tar.gz
kernel-qcow2-linux-48acad099074984f6b0b6e4da011856ba25d12ba.tar.xz
kernel-qcow2-linux-48acad099074984f6b0b6e4da011856ba25d12ba.zip
scsi: qla2xxx: Fix N2N link re-connect
In case of N2N connect, sg_reset for bus/device/host was causing driver and firmware state to go out of sync. This patch fixes this link instablity when reconnect is attempted after link flap. Signed-off-by: Quinn Tran <quinn.tran@cavium.com> Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_os.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index e881fce7477a..eb804e2feedf 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -6186,6 +6186,11 @@ intr_on_check:
if (!IS_QLAFX00(ha))
qla2x00_do_dpc_all_vps(base_vha);
+ if (test_and_clear_bit(N2N_LINK_RESET,
+ &base_vha->dpc_flags)) {
+ qla2x00_lip_reset(base_vha);
+ }
+
ha->dpc_active = 0;
end_loop:
set_current_state(TASK_INTERRUPTIBLE);