summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuinn Tran <quinn.tran@cavium.com>2019-01-25 08:23:45 +0100
committerMartin K. Petersen <martin.petersen@oracle.com>2019-02-06 03:41:16 +0100
commit1021f0bc2f3d6ac80a33aac0059dce8fd1622235 (patch)
tree67b8cfafb4bb682cb67a4c534fec05c877aa0865
parentscsi: qla2xxx: fix fcport null pointer access. (diff)
downloadlinux-1021f0bc2f3d6ac80a33aac0059dce8fd1622235.tar.xz
linux-1021f0bc2f3d6ac80a33aac0059dce8fd1622235.zip
scsi: qla2xxx: allow session delete to finish before create.
This patch flushes del_work and free_work while sending NACK response for PRLI Signed-off-by: Quinn Tran <quinn.tran@cavium.com> Signed-off-by: Himanshu Madhani <hmadhani@marvell.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/qla2xxx/qla_target.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
index 7f5b1156ea8c..6b8c655d9eb4 100644
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -684,6 +684,9 @@ void qla24xx_do_nack_work(struct scsi_qla_host *vha, struct qla_work_evt *e)
switch (e->u.nack.type) {
case SRB_NACK_PRLI:
+ t = e->u.nack.fcport;
+ flush_work(&t->del_work);
+ flush_work(&t->free_work);
mutex_lock(&vha->vha_tgt.tgt_mutex);
t = qlt_create_sess(vha, e->u.nack.fcport, 0);
mutex_unlock(&vha->vha_tgt.tgt_mutex);