Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 32166229 authored by Quinn Tran's avatar Quinn Tran Committed by Greg Kroah-Hartman
Browse files

scsi: qla2xxx: Fix crash on session cleanup with unload

commit 50457dab670f396557e60c07f086358460876353 upstream.

On unload, session cleanup prematurely gave the signal for driver unload
path to advance.

Link: https://lore.kernel.org/r/20200929102152.32278-6-njavali@marvell.com


Fixes: 726b8548 ("qla2xxx: Add framework for async fabric discovery")
Cc: stable@vger.kernel.org
Reviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: default avatarQuinn Tran <qutran@marvell.com>
Signed-off-by: default avatarNilesh Javali <njavali@marvell.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2a922386
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -1228,14 +1228,15 @@ void qlt_schedule_sess_for_deletion(struct fc_port *sess)
	case DSC_DELETE_PEND:
		return;
	case DSC_DELETED:
		if (tgt && tgt->tgt_stop && (tgt->sess_count == 0))
		if (!sess->plogi_link[QLT_PLOGI_LINK_SAME_WWN] &&
			!sess->plogi_link[QLT_PLOGI_LINK_CONFLICT]) {
			if (tgt && tgt->tgt_stop && tgt->sess_count == 0)
				wake_up_all(&tgt->waitQ);

			if (sess->vha->fcport_count == 0)
				wake_up_all(&sess->vha->fcport_waitQ);

		if (!sess->plogi_link[QLT_PLOGI_LINK_SAME_WWN] &&
			!sess->plogi_link[QLT_PLOGI_LINK_CONFLICT])
			return;
		}
		break;
	case DSC_UPD_FCPORT:
		/*