]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
scsi: qla2xxx: Fix unintended Logout
authorQuinn Tran <quinn.tran@cavium.com>
Thu, 2 Aug 2018 20:16:51 +0000 (13:16 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Sep 2018 20:41:25 +0000 (22:41 +0200)
[ Upstream commit cb97f2c2e8d9f8c71ddbf04ad57e163ee6d86474 ]

During normal IO, FW can return IO with 'port unavailble' status.  Driver
would send a LOGO to remote port for session resync.  On an off chance, a
PLOGI could arrive before sending the LOGO.  This patch will skip sendiing
LOGO if a PLOGI just came in.

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>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/qla2xxx/qla_target.c

index 1027b0cb7fa3634baf0bd870ffdc93e9286cac8e..6dc1b1bd806984aa7d937052058151e54fc0faee 100644 (file)
@@ -982,8 +982,9 @@ void qlt_free_session_done(struct work_struct *work)
 
                        logo.id = sess->d_id;
                        logo.cmd_count = 0;
+                       if (!own)
+                               qlt_send_first_logo(vha, &logo);
                        sess->send_els_logo = 0;
-                       qlt_send_first_logo(vha, &logo);
                }
 
                if (sess->logout_on_delete && sess->loop_id != FC_NO_LOOP_ID) {