All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/11] qla2xxx misc. bug fixes
@ 2024-02-23  7:45 Nilesh Javali
  2024-02-23  7:45 ` [PATCH 01/11] qla2xxx: Prevent command send on chip reset Nilesh Javali
                   ` (11 more replies)
  0 siblings, 12 replies; 14+ messages in thread
From: Nilesh Javali @ 2024-02-23  7:45 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi

Martin,

Please apply the qla2xxx driver miscellaneous bug fixes
to the scsi tree at your earliest convenience.

Thanks,
Nilesh

Bikash Hazarika (1):
  qla2xxx: Update manufacturer detail

Nilesh Javali (1):
  qla2xxx: Update version to 10.02.09.200-k

Quinn Tran (6):
  qla2xxx: Prevent command send on chip reset
  qla2xxx: Fix N2N stuck connection
  qla2xxx: Split FCE|EFT trace control
  qla2xxx: NVME|FCP prefer flag not being honored
  qla2xxx: Fix command flush on cable pull
  qla2xxx: Delay IO Abort on PCI error

Saurav Kashyap (3):
  qla2xxx: Fix double free of the ha->vp_map pointer.
  qla2xxx: Fix double free of fcport
  qla2xxx: change debug message during driver unload

 drivers/scsi/qla2xxx/qla_attr.c    |  14 +++-
 drivers/scsi/qla2xxx/qla_def.h     |   2 +-
 drivers/scsi/qla2xxx/qla_gbl.h     |   2 +-
 drivers/scsi/qla2xxx/qla_init.c    | 126 +++++++++++++++--------------
 drivers/scsi/qla2xxx/qla_iocb.c    |  68 ++++++++++------
 drivers/scsi/qla2xxx/qla_mbx.c     |   2 +-
 drivers/scsi/qla2xxx/qla_os.c      |   3 +-
 drivers/scsi/qla2xxx/qla_target.c  |  10 +++
 drivers/scsi/qla2xxx/qla_version.h |   4 +-
 9 files changed, 138 insertions(+), 93 deletions(-)


base-commit: f4469f3858352ad1197434557150b1f7086762a0
-- 
2.23.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 01/11] qla2xxx: Prevent command send on chip reset
  2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
@ 2024-02-23  7:45 ` Nilesh Javali
  2024-02-23  7:45 ` [PATCH 02/11] qla2xxx: Fix N2N stuck connection Nilesh Javali
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Nilesh Javali @ 2024-02-23  7:45 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi

From: Quinn Tran <qutran@marvell.com>

Currently IOCBs are allowed to push through while chip reset
could be in progress. During chip reset the outstanding_cmds
array is cleared twice. Once when any command on this array
is returned as failed and secondly when the array is initialize to
zero. If a command is inserted on to the array between these
intervals, then the command will be lost.
Check for chip reset before sending IOCB.

Cc: stable@vger.kernel.org
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_init.c |  8 ++++++--
 drivers/scsi/qla2xxx/qla_iocb.c | 33 +++++++++++++++++++++++++++++++--
 2 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index a314cfc5b263..2f456e69da91 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1193,8 +1193,12 @@ int qla24xx_async_gnl(struct scsi_qla_host *vha, fc_port_t *fcport)
 	return rval;
 
 done_free_sp:
-	/* ref: INIT */
-	kref_put(&sp->cmd_kref, qla2x00_sp_release);
+	/*
+	 * use qla24xx_async_gnl_sp_done to purge all pending gnl request.
+	 * kref_put is call behind the scene.
+	 */
+	sp->u.iocb_cmd.u.mbx.in_mb[0] = MBS_COMMAND_ERROR;
+	qla24xx_async_gnl_sp_done(sp, QLA_COMMAND_ERROR);
 	fcport->flags &= ~(FCF_ASYNC_SENT);
 done:
 	fcport->flags &= ~(FCF_ASYNC_ACTIVE);
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
index df90169f8244..0228c90b9fe8 100644
--- a/drivers/scsi/qla2xxx/qla_iocb.c
+++ b/drivers/scsi/qla2xxx/qla_iocb.c
@@ -2587,6 +2587,33 @@ void
 qla2x00_sp_release(struct kref *kref)
 {
 	struct srb *sp = container_of(kref, struct srb, cmd_kref);
+	struct scsi_qla_host *vha = sp->vha;
+
+	switch (sp->type) {
+	case SRB_CT_PTHRU_CMD:
+		/* GPSC & GFPNID use fcport->ct_desc.ct_sns for both req & rsp */
+		if (sp->u.iocb_cmd.u.ctarg.req &&
+			(!sp->fcport ||
+			 sp->u.iocb_cmd.u.ctarg.req != sp->fcport->ct_desc.ct_sns)) {
+			dma_free_coherent(&vha->hw->pdev->dev,
+			    sp->u.iocb_cmd.u.ctarg.req_allocated_size,
+			    sp->u.iocb_cmd.u.ctarg.req,
+			    sp->u.iocb_cmd.u.ctarg.req_dma);
+			sp->u.iocb_cmd.u.ctarg.req = NULL;
+		}
+		if (sp->u.iocb_cmd.u.ctarg.rsp &&
+			(!sp->fcport ||
+			 sp->u.iocb_cmd.u.ctarg.rsp != sp->fcport->ct_desc.ct_sns)) {
+			dma_free_coherent(&vha->hw->pdev->dev,
+			    sp->u.iocb_cmd.u.ctarg.rsp_allocated_size,
+			    sp->u.iocb_cmd.u.ctarg.rsp,
+			    sp->u.iocb_cmd.u.ctarg.rsp_dma);
+			sp->u.iocb_cmd.u.ctarg.rsp = NULL;
+		}
+		break;
+	default:
+		break;
+	}
 
 	sp->free(sp);
 }
@@ -2692,7 +2719,7 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode,
 	 */
 	sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL);
 	if (!sp) {
-		kfree(fcport);
+		qla2x00_free_fcport(fcport);
 		ql_log(ql_log_info, vha, 0x70e6,
 		 "SRB allocation failed\n");
 		return -ENOMEM;
@@ -2747,6 +2774,7 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode,
 	if (rval != QLA_SUCCESS) {
 		/* ref: INIT */
 		kref_put(&sp->cmd_kref, qla2x00_sp_release);
+		qla2x00_free_fcport(fcport);
 		return QLA_FUNCTION_FAILED;
 	}
 
@@ -2756,6 +2784,7 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode,
 	    fcport->d_id.b.area, fcport->d_id.b.al_pa);
 
 	wait_for_completion(&elsio->u.els_logo.comp);
+	qla2x00_free_fcport(fcport);
 
 	/* ref: INIT */
 	kref_put(&sp->cmd_kref, qla2x00_sp_release);
@@ -3918,7 +3947,7 @@ qla2x00_start_sp(srb_t *sp)
 		return -EAGAIN;
 	}
 
-	pkt = __qla2x00_alloc_iocbs(sp->qpair, sp);
+	pkt = qla2x00_alloc_iocbs_ready(sp->qpair, sp);
 	if (!pkt) {
 		rval = -EAGAIN;
 		ql_log(ql_log_warn, vha, 0x700c,
-- 
2.23.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 02/11] qla2xxx: Fix N2N stuck connection
  2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
  2024-02-23  7:45 ` [PATCH 01/11] qla2xxx: Prevent command send on chip reset Nilesh Javali
@ 2024-02-23  7:45 ` Nilesh Javali
  2024-02-23  7:45 ` [PATCH 03/11] qla2xxx: Split FCE|EFT trace control Nilesh Javali
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Nilesh Javali @ 2024-02-23  7:45 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi

From: Quinn Tran <qutran@marvell.com>

Disk failed to rediscover after chip reset error
injection. The chip reset happens at the time when
a PLOGI is being sent. This cause a flag to be left
on which blocks the retry. Clear the blocking flag.

Cc: stable@vger.kernel.org
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_gbl.h  |  2 +-
 drivers/scsi/qla2xxx/qla_iocb.c | 32 +++++++++++---------------------
 drivers/scsi/qla2xxx/qla_os.c   |  2 +-
 3 files changed, 13 insertions(+), 23 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
index 09cb9413670a..7309310d2ab9 100644
--- a/drivers/scsi/qla2xxx/qla_gbl.h
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
@@ -44,7 +44,7 @@ extern int qla2x00_fabric_login(scsi_qla_host_t *, fc_port_t *, uint16_t *);
 extern int qla2x00_local_device_login(scsi_qla_host_t *, fc_port_t *);
 
 extern int qla24xx_els_dcmd_iocb(scsi_qla_host_t *, int, port_id_t);
-extern int qla24xx_els_dcmd2_iocb(scsi_qla_host_t *, int, fc_port_t *, bool);
+extern int qla24xx_els_dcmd2_iocb(scsi_qla_host_t *, int, fc_port_t *);
 extern void qla2x00_els_dcmd2_free(scsi_qla_host_t *vha,
 				   struct els_plogi *els_plogi);
 
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
index 0228c90b9fe8..892a27afb462 100644
--- a/drivers/scsi/qla2xxx/qla_iocb.c
+++ b/drivers/scsi/qla2xxx/qla_iocb.c
@@ -3041,7 +3041,7 @@ static void qla2x00_els_dcmd2_sp_done(srb_t *sp, int res)
 
 int
 qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode,
-    fc_port_t *fcport, bool wait)
+			fc_port_t *fcport)
 {
 	srb_t *sp;
 	struct srb_iocb *elsio = NULL;
@@ -3056,8 +3056,7 @@ qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode,
 	if (!sp) {
 		ql_log(ql_log_info, vha, 0x70e6,
 		 "SRB allocation failed\n");
-		fcport->flags &= ~FCF_ASYNC_ACTIVE;
-		return -ENOMEM;
+		goto done;
 	}
 
 	fcport->flags |= FCF_ASYNC_SENT;
@@ -3066,9 +3065,6 @@ qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode,
 	ql_dbg(ql_dbg_io, vha, 0x3073,
 	       "%s Enter: PLOGI portid=%06x\n", __func__, fcport->d_id.b24);
 
-	if (wait)
-		sp->flags = SRB_WAKEUP_ON_COMP;
-
 	sp->type = SRB_ELS_DCMD;
 	sp->name = "ELS_DCMD";
 	sp->fcport = fcport;
@@ -3084,7 +3080,7 @@ qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode,
 
 	if (!elsio->u.els_plogi.els_plogi_pyld) {
 		rval = QLA_FUNCTION_FAILED;
-		goto out;
+		goto done_free_sp;
 	}
 
 	resp_ptr = elsio->u.els_plogi.els_resp_pyld =
@@ -3093,7 +3089,7 @@ qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode,
 
 	if (!elsio->u.els_plogi.els_resp_pyld) {
 		rval = QLA_FUNCTION_FAILED;
-		goto out;
+		goto done_free_sp;
 	}
 
 	ql_dbg(ql_dbg_io, vha, 0x3073, "PLOGI %p %p\n", ptr, resp_ptr);
@@ -3109,7 +3105,6 @@ qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode,
 
 	if (els_opcode == ELS_DCMD_PLOGI && DBELL_ACTIVE(vha)) {
 		struct fc_els_flogi *p = ptr;
-
 		p->fl_csp.sp_features |= cpu_to_be16(FC_SP_FT_SEC);
 	}
 
@@ -3118,10 +3113,11 @@ qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode,
 	    (uint8_t *)elsio->u.els_plogi.els_plogi_pyld,
 	    sizeof(*elsio->u.els_plogi.els_plogi_pyld));
 
-	init_completion(&elsio->u.els_plogi.comp);
 	rval = qla2x00_start_sp(sp);
 	if (rval != QLA_SUCCESS) {
-		rval = QLA_FUNCTION_FAILED;
+		fcport->flags |= FCF_LOGIN_NEEDED;
+		set_bit(RELOGIN_NEEDED, &vha->dpc_flags);
+		goto done_free_sp;
 	} else {
 		ql_dbg(ql_dbg_disc, vha, 0x3074,
 		    "%s PLOGI sent, hdl=%x, loopid=%x, to port_id %06x from port_id %06x\n",
@@ -3129,21 +3125,15 @@ qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode,
 		    fcport->d_id.b24, vha->d_id.b24);
 	}
 
-	if (wait) {
-		wait_for_completion(&elsio->u.els_plogi.comp);
-
-		if (elsio->u.els_plogi.comp_status != CS_COMPLETE)
-			rval = QLA_FUNCTION_FAILED;
-	} else {
-		goto done;
-	}
+	return rval;
 
-out:
-	fcport->flags &= ~(FCF_ASYNC_SENT | FCF_ASYNC_ACTIVE);
+done_free_sp:
 	qla2x00_els_dcmd2_free(vha, &elsio->u.els_plogi);
 	/* ref: INIT */
 	kref_put(&sp->cmd_kref, qla2x00_sp_release);
 done:
+	fcport->flags &= ~(FCF_ASYNC_SENT | FCF_ASYNC_ACTIVE);
+	qla2x00_set_fcport_disc_state(fcport, DSC_DELETED);
 	return rval;
 }
 
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index dd674378f2f3..b3bb974ae797 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -5583,7 +5583,7 @@ qla2x00_do_work(struct scsi_qla_host *vha)
 			break;
 		case QLA_EVT_ELS_PLOGI:
 			qla24xx_els_dcmd2_iocb(vha, ELS_DCMD_PLOGI,
-			    e->u.fcport.fcport, false);
+			    e->u.fcport.fcport);
 			break;
 		case QLA_EVT_SA_REPLACE:
 			rc = qla24xx_issue_sa_replace_iocb(vha, e);
-- 
2.23.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 03/11] qla2xxx: Split FCE|EFT trace control
  2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
  2024-02-23  7:45 ` [PATCH 01/11] qla2xxx: Prevent command send on chip reset Nilesh Javali
  2024-02-23  7:45 ` [PATCH 02/11] qla2xxx: Fix N2N stuck connection Nilesh Javali
@ 2024-02-23  7:45 ` Nilesh Javali
  2024-02-24  2:02   ` kernel test robot
  2024-02-23  7:45 ` [PATCH 04/11] qla2xxx: Update manufacturer detail Nilesh Javali
                   ` (8 subsequent siblings)
  11 siblings, 1 reply; 14+ messages in thread
From: Nilesh Javali @ 2024-02-23  7:45 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi

From: Quinn Tran <qutran@marvell.com>

Current code combine the allocation of FCE|EFT trace buffers
and enable the features all in 1 step.

Split this step into separate steps in preparation for follow
on patch to allow user to have a choice to enable / disable FCE
trace feature.

Cc: stable@vger.kernel.org
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_init.c | 100 +++++++++++++-------------------
 1 file changed, 41 insertions(+), 59 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 2f456e69da91..92c3091fd087 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -2669,6 +2669,40 @@ qla83xx_nic_core_fw_load(scsi_qla_host_t *vha)
 	return rval;
 }
 
+static void qla_enable_fce_trace(scsi_qla_host_t *vha)
+{
+	int rval;
+	struct qla_hw_data *ha = vha->hw;
+
+	if (ha->fce) {
+		ha->flags.fce_enabled = 1;
+		memset(ha->fce, 0, fce_calc_size(ha->fce_bufs));
+		rval = qla2x00_enable_fce_trace(vha,
+		    ha->fce_dma, ha->fce_bufs, ha->fce_mb, &ha->fce_bufs);
+
+		if (rval) {
+			ql_log(ql_log_warn, vha, 0x8033,
+			    "Unable to reinitialize FCE (%d).\n", rval);
+			ha->flags.fce_enabled = 0;
+		}
+	}
+}
+
+static void qla_enable_eft_trace(scsi_qla_host_t *vha)
+{
+	int rval;
+	struct qla_hw_data *ha = vha->hw;
+
+	if (ha->eft) {
+		memset(ha->eft, 0, EFT_SIZE);
+		rval = qla2x00_enable_eft_trace(vha, ha->eft_dma, EFT_NUM_BUFFERS);
+
+		if (rval) {
+			ql_log(ql_log_warn, vha, 0x8034,
+			    "Unable to reinitialize EFT (%d).\n", rval);
+		}
+	}
+}
 /*
 * qla2x00_initialize_adapter
 *      Initialize board.
@@ -3672,9 +3706,8 @@ qla24xx_chip_diag(scsi_qla_host_t *vha)
 }
 
 static void
-qla2x00_init_fce_trace(scsi_qla_host_t *vha)
+qla2x00_alloc_fce_trace(scsi_qla_host_t *vha)
 {
-	int rval;
 	dma_addr_t tc_dma;
 	void *tc;
 	struct qla_hw_data *ha = vha->hw;
@@ -3703,27 +3736,17 @@ qla2x00_init_fce_trace(scsi_qla_host_t *vha)
 		return;
 	}
 
-	rval = qla2x00_enable_fce_trace(vha, tc_dma, FCE_NUM_BUFFERS,
-					ha->fce_mb, &ha->fce_bufs);
-	if (rval) {
-		ql_log(ql_log_warn, vha, 0x00bf,
-		       "Unable to initialize FCE (%d).\n", rval);
-		dma_free_coherent(&ha->pdev->dev, FCE_SIZE, tc, tc_dma);
-		return;
-	}
-
 	ql_dbg(ql_dbg_init, vha, 0x00c0,
 	       "Allocated (%d KB) for FCE...\n", FCE_SIZE / 1024);
 
-	ha->flags.fce_enabled = 1;
 	ha->fce_dma = tc_dma;
 	ha->fce = tc;
+	ha->fce_bufs = FCE_NUM_BUFFERS;
 }
 
 static void
-qla2x00_init_eft_trace(scsi_qla_host_t *vha)
+qla2x00_alloc_eft_trace(scsi_qla_host_t *vha)
 {
-	int rval;
 	dma_addr_t tc_dma;
 	void *tc;
 	struct qla_hw_data *ha = vha->hw;
@@ -3748,14 +3771,6 @@ qla2x00_init_eft_trace(scsi_qla_host_t *vha)
 		return;
 	}
 
-	rval = qla2x00_enable_eft_trace(vha, tc_dma, EFT_NUM_BUFFERS);
-	if (rval) {
-		ql_log(ql_log_warn, vha, 0x00c2,
-		       "Unable to initialize EFT (%d).\n", rval);
-		dma_free_coherent(&ha->pdev->dev, EFT_SIZE, tc, tc_dma);
-		return;
-	}
-
 	ql_dbg(ql_dbg_init, vha, 0x00c3,
 	       "Allocated (%d KB) EFT ...\n", EFT_SIZE / 1024);
 
@@ -3763,13 +3778,6 @@ qla2x00_init_eft_trace(scsi_qla_host_t *vha)
 	ha->eft = tc;
 }
 
-static void
-qla2x00_alloc_offload_mem(scsi_qla_host_t *vha)
-{
-	qla2x00_init_fce_trace(vha);
-	qla2x00_init_eft_trace(vha);
-}
-
 void
 qla2x00_alloc_fw_dump(scsi_qla_host_t *vha)
 {
@@ -3824,10 +3832,10 @@ qla2x00_alloc_fw_dump(scsi_qla_host_t *vha)
 		if (ha->tgt.atio_ring)
 			mq_size += ha->tgt.atio_q_length * sizeof(request_t);
 
-		qla2x00_init_fce_trace(vha);
+		qla2x00_alloc_fce_trace(vha);
 		if (ha->fce)
 			fce_size = sizeof(struct qla2xxx_fce_chain) + FCE_SIZE;
-		qla2x00_init_eft_trace(vha);
+		qla2x00_alloc_eft_trace(vha);
 		if (ha->eft)
 			eft_size = EFT_SIZE;
 	}
@@ -4353,12 +4361,11 @@ qla2x00_setup_chip(scsi_qla_host_t *vha)
 				if (rval != QLA_SUCCESS)
 					goto failed;
 
-				if (!fw_major_version && !(IS_P3P_TYPE(ha)))
-					qla2x00_alloc_offload_mem(vha);
-
 				if (ql2xallocfwdump && !(IS_P3P_TYPE(ha)))
 					qla2x00_alloc_fw_dump(vha);
 
+				qla_enable_fce_trace(vha);
+				qla_enable_eft_trace(vha);
 			} else {
 				goto failed;
 			}
@@ -7491,7 +7498,6 @@ qla2x00_abort_isp_cleanup(scsi_qla_host_t *vha)
 int
 qla2x00_abort_isp(scsi_qla_host_t *vha)
 {
-	int rval;
 	uint8_t        status = 0;
 	struct qla_hw_data *ha = vha->hw;
 	struct scsi_qla_host *vp, *tvp;
@@ -7585,31 +7591,7 @@ qla2x00_abort_isp(scsi_qla_host_t *vha)
 
 			if (IS_QLA81XX(ha) || IS_QLA8031(ha))
 				qla2x00_get_fw_version(vha);
-			if (ha->fce) {
-				ha->flags.fce_enabled = 1;
-				memset(ha->fce, 0,
-				    fce_calc_size(ha->fce_bufs));
-				rval = qla2x00_enable_fce_trace(vha,
-				    ha->fce_dma, ha->fce_bufs, ha->fce_mb,
-				    &ha->fce_bufs);
-				if (rval) {
-					ql_log(ql_log_warn, vha, 0x8033,
-					    "Unable to reinitialize FCE "
-					    "(%d).\n", rval);
-					ha->flags.fce_enabled = 0;
-				}
-			}
 
-			if (ha->eft) {
-				memset(ha->eft, 0, EFT_SIZE);
-				rval = qla2x00_enable_eft_trace(vha,
-				    ha->eft_dma, EFT_NUM_BUFFERS);
-				if (rval) {
-					ql_log(ql_log_warn, vha, 0x8034,
-					    "Unable to reinitialize EFT "
-					    "(%d).\n", rval);
-				}
-			}
 		} else {	/* failed the ISP abort */
 			vha->flags.online = 1;
 			if (test_bit(ISP_ABORT_RETRY, &vha->dpc_flags)) {
-- 
2.23.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 04/11] qla2xxx: Update manufacturer detail
  2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
                   ` (2 preceding siblings ...)
  2024-02-23  7:45 ` [PATCH 03/11] qla2xxx: Split FCE|EFT trace control Nilesh Javali
@ 2024-02-23  7:45 ` Nilesh Javali
  2024-02-23  7:45 ` [PATCH 05/11] qla2xxx: NVME|FCP prefer flag not being honored Nilesh Javali
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Nilesh Javali @ 2024-02-23  7:45 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi

From: Bikash Hazarika <bhazarika@marvell.com>

Update manufacturer detail from "Marvell Semiconductor, Inc."
to "Marvell".

Cc: stable@vger.kernel.org
Signed-off-by: Bikash Hazarika <bhazarika@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_def.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index deb642607deb..2f49baf131e2 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -82,7 +82,7 @@ typedef union {
 #include "qla_nvme.h"
 #define QLA2XXX_DRIVER_NAME	"qla2xxx"
 #define QLA2XXX_APIDEV		"ql2xapidev"
-#define QLA2XXX_MANUFACTURER	"Marvell Semiconductor, Inc."
+#define QLA2XXX_MANUFACTURER	"Marvell"
 
 /*
  * We have MAILBOX_REGISTER_COUNT sized arrays in a few places,
-- 
2.23.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 05/11] qla2xxx: NVME|FCP prefer flag not being honored
  2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
                   ` (3 preceding siblings ...)
  2024-02-23  7:45 ` [PATCH 04/11] qla2xxx: Update manufacturer detail Nilesh Javali
@ 2024-02-23  7:45 ` Nilesh Javali
  2024-02-23  7:45 ` [PATCH 06/11] qla2xxx: Fix command flush on cable pull Nilesh Javali
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Nilesh Javali @ 2024-02-23  7:45 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi

From: Quinn Tran <qutran@marvell.com>

Changing of [FCP|NVME] prefer flag in flash has
no effect on driver. For device that support both FCP + NVME
over the same connection, driver continue to connect to this device
using the previous successful login mode.

On completion of flash update, adapter will be reset. Driver will
reset the prefer flag based on setting from flash.

Cc: stable@vger.kernel.org
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_init.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 92c3091fd087..00700b848d9c 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -7503,6 +7503,7 @@ qla2x00_abort_isp(scsi_qla_host_t *vha)
 	struct scsi_qla_host *vp, *tvp;
 	struct req_que *req = ha->req_q_map[0];
 	unsigned long flags;
+	fc_port_t *fcport;
 
 	if (vha->flags.online) {
 		qla2x00_abort_isp_cleanup(vha);
@@ -7571,6 +7572,15 @@ qla2x00_abort_isp(scsi_qla_host_t *vha)
 			       "ISP Abort - ISP reg disconnect post nvmram config, exiting.\n");
 			return status;
 		}
+
+		/* User may have updated [fcp|nvme] prefer in flash */
+		list_for_each_entry(fcport, &vha->vp_fcports, list) {
+			if (NVME_PRIORITY(ha, fcport))
+				fcport->do_prli_nvme = 1;
+			else
+				fcport->do_prli_nvme = 0;
+		}
+
 		if (!qla2x00_restart_isp(vha)) {
 			clear_bit(RESET_MARKER_NEEDED, &vha->dpc_flags);
 
@@ -7641,6 +7651,14 @@ qla2x00_abort_isp(scsi_qla_host_t *vha)
 				atomic_inc(&vp->vref_count);
 				spin_unlock_irqrestore(&ha->vport_slock, flags);
 
+				/* User may have updated [fcp|nvme] prefer in flash */
+				list_for_each_entry(fcport, &vp->vp_fcports, list) {
+					if (NVME_PRIORITY(ha, fcport))
+						fcport->do_prli_nvme = 1;
+					else
+						fcport->do_prli_nvme = 0;
+				}
+
 				qla2x00_vp_abort_isp(vp);
 
 				spin_lock_irqsave(&ha->vport_slock, flags);
-- 
2.23.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 06/11] qla2xxx: Fix command flush on cable pull
  2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
                   ` (4 preceding siblings ...)
  2024-02-23  7:45 ` [PATCH 05/11] qla2xxx: NVME|FCP prefer flag not being honored Nilesh Javali
@ 2024-02-23  7:45 ` Nilesh Javali
  2024-02-23  7:45 ` [PATCH 07/11] qla2xxx: Fix double free of the ha->vp_map pointer Nilesh Javali
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Nilesh Javali @ 2024-02-23  7:45 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi

From: Quinn Tran <qutran@marvell.com>

System crash due to command failed to flush back
to scsi layer.

 BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
 PGD 0 P4D 0
 Oops: 0000 [#1] SMP NOPTI
 CPU: 27 PID: 793455 Comm: kworker/u130:6 Kdump: loaded Tainted: G           OE    --------- -  - 4.18.0-372.9.1.el8.x86_64 #1
 Hardware name: HPE ProLiant DL360 Gen10/ProLiant DL360 Gen10, BIOS U32 09/03/2021
 Workqueue: nvme-wq nvme_fc_connect_ctrl_work [nvme_fc]
 RIP: 0010:__wake_up_common+0x4c/0x190
 Code: 24 10 4d 85 c9 74 0a 41 f6 01 04 0f 85 9d 00 00 00 48 8b 43 08 48 83 c3 08 4c 8d 48 e8 49 8d 41 18 48 39 c3 0f 84 f0 00 00 00 <49> 8b 41 18 89 54 24 08 31 ed 4c 8d 70 e8 45 8b 29 41 f6 c5 04 75
 RSP: 0018:ffff95f3e0cb7cd0 EFLAGS: 00010086
 RAX: 0000000000000000 RBX: ffff8b08d3b26328 RCX: 0000000000000000
 RDX: 0000000000000001 RSI: 0000000000000003 RDI: ffff8b08d3b26320
 RBP: 0000000000000001 R08: 0000000000000000 R09: ffffffffffffffe8
 R10: 0000000000000000 R11: ffff95f3e0cb7a60 R12: ffff95f3e0cb7d20
 R13: 0000000000000003 R14: 0000000000000000 R15: 0000000000000000
 FS:  0000000000000000(0000) GS:ffff8b2fdf6c0000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 0000000000000000 CR3: 0000002f1e410002 CR4: 00000000007706e0
 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
 PKRU: 55555554
 Call Trace:
  __wake_up_common_lock+0x7c/0xc0
  qla_nvme_ls_req+0x355/0x4c0 [qla2xxx]
 qla2xxx [0000:12:00.1]-f084:3: qlt_free_session_done: se_sess 0000000000000000 / sess ffff8ae1407ca000 from port 21:32:00:02:ac:07:ee:b8 loop_id 0x02 s_id 01:02:00 logout 1 keep 0 els_logo 0
 ? __nvme_fc_send_ls_req+0x260/0x380 [nvme_fc]
 qla2xxx [0000:12:00.1]-207d:3: FCPort 21:32:00:02:ac:07:ee:b8 state transitioned from ONLINE to LOST - portid=010200.
  ? nvme_fc_send_ls_req.constprop.42+0x1a/0x45 [nvme_fc]
 qla2xxx [0000:12:00.1]-2109:3: qla2x00_schedule_rport_del 21320002ac07eeb8. rport ffff8ae598122000 roles 1
 ? nvme_fc_connect_ctrl_work.cold.63+0x1e3/0xa7d [nvme_fc]
 qla2xxx [0000:12:00.1]-f084:3: qlt_free_session_done: se_sess 0000000000000000 / sess ffff8ae14801e000 from port 21:32:01:02:ad:f7:ee:b8 loop_id 0x04 s_id 01:02:01 logout 1 keep 0 els_logo 0
  ? __switch_to+0x10c/0x450
 ? process_one_work+0x1a7/0x360
 qla2xxx [0000:12:00.1]-207d:3: FCPort 21:32:01:02:ad:f7:ee:b8 state transitioned from ONLINE to LOST - portid=010201.
  ? worker_thread+0x1ce/0x390
  ? create_worker+0x1a0/0x1a0
 qla2xxx [0000:12:00.1]-2109:3: qla2x00_schedule_rport_del 21320102adf7eeb8. rport ffff8ae3b2312800 roles 70
  ? kthread+0x10a/0x120
 qla2xxx [0000:12:00.1]-2112:3: qla_nvme_unregister_remote_port: unregister remoteport on ffff8ae14801e000 21320102adf7eeb8
  ? set_kthread_struct+0x40/0x40
 qla2xxx [0000:12:00.1]-2110:3: remoteport_delete of ffff8ae14801e000 21320102adf7eeb8 completed.
  ? ret_from_fork+0x1f/0x40
 qla2xxx [0000:12:00.1]-f086:3: qlt_free_session_done: waiting for sess ffff8ae14801e000 logout

The system was under memory stress where driver was not
able to allocate a srb to carry out error recovery of cable pull.
The failure to flush cause upper layer to start modifying scsi_cmnd.
When the system free up some memory, the subsequent cable
pull trigger another command flush. At this point the
driver access a null pointer when attempting to dma unmap
the SGL.

Add a check to make sure commands are flush back on session tear
down to prevent the null pointer access.

Cc: stable@vger.kernel.org
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_target.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
index 2ef2dbac0db2..d7551b1443e4 100644
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -1062,6 +1062,16 @@ void qlt_free_session_done(struct work_struct *work)
 		    "%s: sess %p logout completed\n", __func__, sess);
 	}
 
+	/* check for any straggling io left behind */
+	if (!(sess->flags & FCF_FCP2_DEVICE) &&
+	    qla2x00_eh_wait_for_pending_commands(sess->vha, sess->d_id.b24, 0, WAIT_TARGET)) {
+		ql_log(ql_log_warn, vha, 0x3027,
+		    "IO not return. Resetting.\n");
+		set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
+		qla2xxx_wake_dpc(vha);
+		qla2x00_wait_for_chip_reset(vha);
+	}
+
 	if (sess->logo_ack_needed) {
 		sess->logo_ack_needed = 0;
 		qla24xx_async_notify_ack(vha, sess,
-- 
2.23.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 07/11] qla2xxx: Fix double free of the ha->vp_map pointer.
  2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
                   ` (5 preceding siblings ...)
  2024-02-23  7:45 ` [PATCH 06/11] qla2xxx: Fix command flush on cable pull Nilesh Javali
@ 2024-02-23  7:45 ` Nilesh Javali
  2024-02-23  7:45 ` [PATCH 08/11] qla2xxx: Fix double free of fcport Nilesh Javali
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Nilesh Javali @ 2024-02-23  7:45 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi

From: Saurav Kashyap <skashyap@marvell.com>

Coverity scan reported potential risk of double free
of the pointer ha->vp_map.
ha→vp_map was freed in qla2x00_mem_alloc(), and again
freed in function qla2x00_mem_free(ha).

Assign NULL to vp_map and kfree take care of NULL.

Cc: stable@vger.kernel.org
Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_os.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index b3bb974ae797..1e2f52210f60 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -4602,6 +4602,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
 	ha->init_cb_dma = 0;
 fail_free_vp_map:
 	kfree(ha->vp_map);
+	ha->vp_map = NULL;
 fail:
 	ql_log(ql_log_fatal, NULL, 0x0030,
 	    "Memory allocation failure.\n");
-- 
2.23.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 08/11] qla2xxx: Fix double free of fcport
  2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
                   ` (6 preceding siblings ...)
  2024-02-23  7:45 ` [PATCH 07/11] qla2xxx: Fix double free of the ha->vp_map pointer Nilesh Javali
@ 2024-02-23  7:45 ` Nilesh Javali
  2024-02-23  7:45 ` [PATCH 09/11] qla2xxx: change debug message during driver unload Nilesh Javali
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Nilesh Javali @ 2024-02-23  7:45 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi

From: Saurav Kashyap <skashyap@marvell.com>

The server was crashing after LOGO because fcport was getting
freed twice.

 -----------[ cut here ]-----------
 kernel BUG at mm/slub.c:371!
 invalid opcode: 0000 1 SMP PTI
 CPU: 35 PID: 4610 Comm: bash Kdump: loaded Tainted: G OE --------- - - 4.18.0-425.3.1.el8.x86_64 #1
 Hardware name: HPE ProLiant DL360 Gen10/ProLiant DL360 Gen10, BIOS U32 09/03/2021
 RIP: 0010:set_freepointer.part.57+0x0/0x10
 RSP: 0018:ffffb07107027d90 EFLAGS: 00010246
 RAX: ffff9cb7e3150000 RBX: ffff9cb7e332b9c0 RCX: ffff9cb7e3150400
 RDX: 0000000000001f37 RSI: 0000000000000000 RDI: ffff9cb7c0005500
 RBP: fffff693448c5400 R08: 0000000080000000 R09: 0000000000000009
 R10: 0000000000000000 R11: 0000000000132af0 R12: ffff9cb7c0005500
 R13: ffff9cb7e3150000 R14: ffffffffc06990e0 R15: ffff9cb7ea85ea58
 FS: 00007ff6b79c2740(0000) GS:ffff9cb8f7ec0000(0000) knlGS:0000000000000000
 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 000055b426b7d700 CR3: 0000000169c18002 CR4: 00000000007706e0
 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
 PKRU: 55555554
 Call Trace:
 kfree+0x238/0x250
 qla2x00_els_dcmd_sp_free+0x20/0x230 [qla2xxx]
 ? qla24xx_els_dcmd_iocb+0x607/0x690 [qla2xxx]
 qla2x00_issue_logo+0x28c/0x2a0 [qla2xxx]
 ? qla2x00_issue_logo+0x28c/0x2a0 [qla2xxx]
 ? kernfs_fop_write+0x11e/0x1a0

Remove one of the free call and add check for valid
fcport. Also use function qla2x00_free_fcport instead of kfree.

Cc: stable@vger.kernel.org
Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_iocb.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
index 892a27afb462..0b41e8a06602 100644
--- a/drivers/scsi/qla2xxx/qla_iocb.c
+++ b/drivers/scsi/qla2xxx/qla_iocb.c
@@ -2637,7 +2637,8 @@ static void qla2x00_els_dcmd_sp_free(srb_t *sp)
 {
 	struct srb_iocb *elsio = &sp->u.iocb_cmd;
 
-	kfree(sp->fcport);
+	if (sp->fcport)
+		qla2x00_free_fcport(sp->fcport);
 
 	if (elsio->u.els_logo.els_logo_pyld)
 		dma_free_coherent(&sp->vha->hw->pdev->dev, DMA_POOL_SIZE,
@@ -2750,6 +2751,7 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode,
 	if (!elsio->u.els_logo.els_logo_pyld) {
 		/* ref: INIT */
 		kref_put(&sp->cmd_kref, qla2x00_sp_release);
+		qla2x00_free_fcport(fcport);
 		return QLA_FUNCTION_FAILED;
 	}
 
@@ -2784,7 +2786,6 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode,
 	    fcport->d_id.b.area, fcport->d_id.b.al_pa);
 
 	wait_for_completion(&elsio->u.els_logo.comp);
-	qla2x00_free_fcport(fcport);
 
 	/* ref: INIT */
 	kref_put(&sp->cmd_kref, qla2x00_sp_release);
-- 
2.23.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 09/11] qla2xxx: change debug message during driver unload
  2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
                   ` (7 preceding siblings ...)
  2024-02-23  7:45 ` [PATCH 08/11] qla2xxx: Fix double free of fcport Nilesh Javali
@ 2024-02-23  7:45 ` Nilesh Javali
  2024-02-23  7:45 ` [PATCH 10/11] qla2xxx: Delay IO Abort on PCI error Nilesh Javali
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Nilesh Javali @ 2024-02-23  7:45 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi

From: Saurav Kashyap <skashyap@marvell.com>

Upon driver unload, purge_mbox flag is set and the
heartbeat monitor thread detects this flag and does
not send the mailbox command down to FW with a debug
message "Error detected: purge[1] eeh[0] cmd=0x0, Exiting".
This being not a real error, change the debug message.

Cc: stable@vger.kernel.org
Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_mbx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 21ec32b4fb28..0cd6f3e14882 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -194,7 +194,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
 	if (ha->flags.purge_mbox || chip_reset != ha->chip_reset ||
 	    ha->flags.eeh_busy) {
 		ql_log(ql_log_warn, vha, 0xd035,
-		       "Error detected: purge[%d] eeh[%d] cmd=0x%x, Exiting.\n",
+		       "Purge mbox: purge[%d] eeh[%d] cmd=0x%x, Exiting.\n",
 		       ha->flags.purge_mbox, ha->flags.eeh_busy, mcp->mb[0]);
 		rval = QLA_ABORTED;
 		goto premature_exit;
-- 
2.23.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 10/11] qla2xxx: Delay IO Abort on PCI error
  2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
                   ` (8 preceding siblings ...)
  2024-02-23  7:45 ` [PATCH 09/11] qla2xxx: change debug message during driver unload Nilesh Javali
@ 2024-02-23  7:45 ` Nilesh Javali
  2024-02-23  7:45 ` [PATCH 11/11] qla2xxx: Update version to 10.02.09.200-k Nilesh Javali
  2024-02-27  4:10 ` [PATCH 00/11] qla2xxx misc. bug fixes Himanshu Madhani
  11 siblings, 0 replies; 14+ messages in thread
From: Nilesh Javali @ 2024-02-23  7:45 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi

From: Quinn Tran <qutran@marvell.com>

Currently when PCI error is detected, IO is aborted
manually through the ABORT IOCB mechanism which is
not guaranteed to succeed.

Instead, wait for the OS or system to notify driver
to wind down IO through the pci_error_handlers api.
Set eeh_busy flag to pause all traffic and wait
for IO to drain.

Cc: stable@vger.kernel.org
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_attr.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
index 44449c70a375..76eeba435fd0 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
@@ -2741,7 +2741,13 @@ qla2x00_dev_loss_tmo_callbk(struct fc_rport *rport)
 		return;
 
 	if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) {
-		qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16);
+		/* Will wait for wind down of adapter */
+		ql_dbg(ql_dbg_aer, fcport->vha, 0x900c,
+		    "%s pci offline detected (id %06x)\n", __func__,
+		    fcport->d_id.b24);
+		qla_pci_set_eeh_busy(fcport->vha);
+		qla2x00_eh_wait_for_pending_commands(fcport->vha, fcport->d_id.b24,
+		    0, WAIT_TARGET);
 		return;
 	}
 }
@@ -2763,7 +2769,11 @@ qla2x00_terminate_rport_io(struct fc_rport *rport)
 	vha = fcport->vha;
 
 	if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) {
-		qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16);
+		/* Will wait for wind down of adapter */
+		ql_dbg(ql_dbg_aer, fcport->vha, 0x900b,
+		    "%s pci offline detected (id %06x)\n", __func__,
+		    fcport->d_id.b24);
+		qla_pci_set_eeh_busy(vha);
 		qla2x00_eh_wait_for_pending_commands(fcport->vha, fcport->d_id.b24,
 			0, WAIT_TARGET);
 		return;
-- 
2.23.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 11/11] qla2xxx: Update version to 10.02.09.200-k
  2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
                   ` (9 preceding siblings ...)
  2024-02-23  7:45 ` [PATCH 10/11] qla2xxx: Delay IO Abort on PCI error Nilesh Javali
@ 2024-02-23  7:45 ` Nilesh Javali
  2024-02-27  4:10 ` [PATCH 00/11] qla2xxx misc. bug fixes Himanshu Madhani
  11 siblings, 0 replies; 14+ messages in thread
From: Nilesh Javali @ 2024-02-23  7:45 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi

Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_version.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_version.h b/drivers/scsi/qla2xxx/qla_version.h
index d903563e969e..7627fd807bc3 100644
--- a/drivers/scsi/qla2xxx/qla_version.h
+++ b/drivers/scsi/qla2xxx/qla_version.h
@@ -6,9 +6,9 @@
 /*
  * Driver version
  */
-#define QLA2XXX_VERSION      "10.02.09.100-k"
+#define QLA2XXX_VERSION      "10.02.09.200-k"
 
 #define QLA_DRIVER_MAJOR_VER	10
 #define QLA_DRIVER_MINOR_VER	2
 #define QLA_DRIVER_PATCH_VER	9
-#define QLA_DRIVER_BETA_VER	100
+#define QLA_DRIVER_BETA_VER	200
-- 
2.23.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH 03/11] qla2xxx: Split FCE|EFT trace control
  2024-02-23  7:45 ` [PATCH 03/11] qla2xxx: Split FCE|EFT trace control Nilesh Javali
@ 2024-02-24  2:02   ` kernel test robot
  0 siblings, 0 replies; 14+ messages in thread
From: kernel test robot @ 2024-02-24  2:02 UTC (permalink / raw)
  To: Nilesh Javali, martin.petersen
  Cc: oe-kbuild-all, linux-scsi, GR-QLogic-Storage-Upstream,
	agurumurthy, sdeodhar, emilne, jmeneghi

Hi Nilesh,

kernel test robot noticed the following build warnings:

[auto build test WARNING on f4469f3858352ad1197434557150b1f7086762a0]

url:    https://github.com/intel-lab-lkp/linux/commits/Nilesh-Javali/qla2xxx-Prevent-command-send-on-chip-reset/20240223-154651
base:   f4469f3858352ad1197434557150b1f7086762a0
patch link:    https://lore.kernel.org/r/20240223074514.8472-4-njavali%40marvell.com
patch subject: [PATCH 03/11] qla2xxx: Split FCE|EFT trace control
config: loongarch-defconfig (https://download.01.org/0day-ci/archive/20240224/202402240913.dFLbIVfU-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240224/202402240913.dFLbIVfU-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402240913.dFLbIVfU-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/scsi/qla2xxx/qla_init.c: In function 'qla2x00_setup_chip':
>> drivers/scsi/qla2xxx/qla_init.c:4268:18: warning: variable 'fw_major_version' set but not used [-Wunused-but-set-variable]
    4268 |         uint16_t fw_major_version;
         |                  ^~~~~~~~~~~~~~~~


vim +/fw_major_version +4268 drivers/scsi/qla2xxx/qla_init.c

efa74a62aaa242 Quinn Tran          2023-07-14  4253  
^1da177e4c3f41 Linus Torvalds      2005-04-16  4254  /**
^1da177e4c3f41 Linus Torvalds      2005-04-16  4255   * qla2x00_setup_chip() - Load and start RISC firmware.
2db6228d9cd13b Bart Van Assche     2018-01-23  4256   * @vha: HA context
^1da177e4c3f41 Linus Torvalds      2005-04-16  4257   *
^1da177e4c3f41 Linus Torvalds      2005-04-16  4258   * Returns 0 on success.
^1da177e4c3f41 Linus Torvalds      2005-04-16  4259   */
^1da177e4c3f41 Linus Torvalds      2005-04-16  4260  static int
e315cd28b9ef0d Anirban Chakraborty 2008-11-06  4261  qla2x00_setup_chip(scsi_qla_host_t *vha)
^1da177e4c3f41 Linus Torvalds      2005-04-16  4262  {
^1da177e4c3f41 Linus Torvalds      2005-04-16  4263  	int rval;
0107109ed69c9e Andrew Vasquez      2005-07-06  4264  	uint32_t srisc_address = 0;
e315cd28b9ef0d Anirban Chakraborty 2008-11-06  4265  	struct qla_hw_data *ha = vha->hw;
3db0652ef986f3 Andrew Vasquez      2008-01-31  4266  	struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
3db0652ef986f3 Andrew Vasquez      2008-01-31  4267  	unsigned long flags;
dda772e8e3b983 Andrew Vasquez      2009-03-24 @4268  	uint16_t fw_major_version;
b0f18eee6fc1ee Andrew Vasquez      2020-02-26  4269  	int done_once = 0;
3db0652ef986f3 Andrew Vasquez      2008-01-31  4270  
7ec0effd30bb4b Atul Deshmukh       2013-08-27  4271  	if (IS_P3P_TYPE(ha)) {
a9083016a5314b Giridhar Malavali   2010-04-12  4272  		rval = ha->isp_ops->load_risc(vha, &srisc_address);
14e303d98bcfe4 Andrew Vasquez      2010-07-23  4273  		if (rval == QLA_SUCCESS) {
14e303d98bcfe4 Andrew Vasquez      2010-07-23  4274  			qla2x00_stop_firmware(vha);
a9083016a5314b Giridhar Malavali   2010-04-12  4275  			goto enable_82xx_npiv;
14e303d98bcfe4 Andrew Vasquez      2010-07-23  4276  		} else
b963752f47c54a Giridhar Malavali   2010-05-28  4277  			goto failed;
a9083016a5314b Giridhar Malavali   2010-04-12  4278  	}
a9083016a5314b Giridhar Malavali   2010-04-12  4279  
3db0652ef986f3 Andrew Vasquez      2008-01-31  4280  	if (!IS_FWI2_CAPABLE(ha) && !IS_QLA2100(ha) && !IS_QLA2200(ha)) {
3db0652ef986f3 Andrew Vasquez      2008-01-31  4281  		/* Disable SRAM, Instruction RAM and GP RAM parity.  */
3db0652ef986f3 Andrew Vasquez      2008-01-31  4282  		spin_lock_irqsave(&ha->hardware_lock, flags);
04474d3a1c9681 Bart Van Assche     2020-05-18  4283  		wrt_reg_word(&reg->hccr, (HCCR_ENABLE_PARITY + 0x0));
04474d3a1c9681 Bart Van Assche     2020-05-18  4284  		rd_reg_word(&reg->hccr);
3db0652ef986f3 Andrew Vasquez      2008-01-31  4285  		spin_unlock_irqrestore(&ha->hardware_lock, flags);
3db0652ef986f3 Andrew Vasquez      2008-01-31  4286  	}
^1da177e4c3f41 Linus Torvalds      2005-04-16  4287  
18e7555a38eaad Andrew Vasquez      2009-06-03  4288  	qla81xx_mpi_sync(vha);
18e7555a38eaad Andrew Vasquez      2009-06-03  4289  
b0f18eee6fc1ee Andrew Vasquez      2020-02-26  4290  execute_fw_with_lr:
^1da177e4c3f41 Linus Torvalds      2005-04-16  4291  	/* Load firmware sequences */
e315cd28b9ef0d Anirban Chakraborty 2008-11-06  4292  	rval = ha->isp_ops->load_risc(vha, &srisc_address);
0107109ed69c9e Andrew Vasquez      2005-07-06  4293  	if (rval == QLA_SUCCESS) {
7c3df1320e5e87 Saurav Kashyap      2011-07-14  4294  		ql_dbg(ql_dbg_init, vha, 0x00c9,
7c3df1320e5e87 Saurav Kashyap      2011-07-14  4295  		    "Verifying Checksum of loaded RISC code.\n");
^1da177e4c3f41 Linus Torvalds      2005-04-16  4296  
e315cd28b9ef0d Anirban Chakraborty 2008-11-06  4297  		rval = qla2x00_verify_checksum(vha, srisc_address);
^1da177e4c3f41 Linus Torvalds      2005-04-16  4298  		if (rval == QLA_SUCCESS) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  4299  			/* Start firmware execution. */
7c3df1320e5e87 Saurav Kashyap      2011-07-14  4300  			ql_dbg(ql_dbg_init, vha, 0x00ca,
7c3df1320e5e87 Saurav Kashyap      2011-07-14  4301  			    "Starting firmware.\n");
^1da177e4c3f41 Linus Torvalds      2005-04-16  4302  
b0d6cabd355ae9 Himanshu Madhani    2015-12-17  4303  			if (ql2xexlogins)
b0d6cabd355ae9 Himanshu Madhani    2015-12-17  4304  				ha->flags.exlogins_enabled = 1;
b0d6cabd355ae9 Himanshu Madhani    2015-12-17  4305  
99e1b683c4be3f Quinn Tran          2017-06-02  4306  			if (qla_is_exch_offld_enabled(vha))
2f56a7f1b5d8cf Himanshu Madhani    2015-12-17  4307  				ha->flags.exchoffld_enabled = 1;
2f56a7f1b5d8cf Himanshu Madhani    2015-12-17  4308  
e315cd28b9ef0d Anirban Chakraborty 2008-11-06  4309  			rval = qla2x00_execute_fw(vha, srisc_address);
^1da177e4c3f41 Linus Torvalds      2005-04-16  4310  			/* Retrieve firmware information. */
dda772e8e3b983 Andrew Vasquez      2009-03-24  4311  			if (rval == QLA_SUCCESS) {
b0f18eee6fc1ee Andrew Vasquez      2020-02-26  4312  				/* Enable BPM support? */
b0f18eee6fc1ee Andrew Vasquez      2020-02-26  4313  				if (!done_once++ && qla24xx_detect_sfp(vha)) {
b0f18eee6fc1ee Andrew Vasquez      2020-02-26  4314  					ql_dbg(ql_dbg_init, vha, 0x00ca,
b0f18eee6fc1ee Andrew Vasquez      2020-02-26  4315  					    "Re-starting firmware -- BPM.\n");
b0f18eee6fc1ee Andrew Vasquez      2020-02-26  4316  					/* Best-effort - re-init. */
b0f18eee6fc1ee Andrew Vasquez      2020-02-26  4317  					ha->isp_ops->reset_chip(vha);
b0f18eee6fc1ee Andrew Vasquez      2020-02-26  4318  					ha->isp_ops->chip_diag(vha);
b0f18eee6fc1ee Andrew Vasquez      2020-02-26  4319  					goto execute_fw_with_lr;
b0f18eee6fc1ee Andrew Vasquez      2020-02-26  4320  				}
e4e3a2ce9556cc Quinn Tran          2017-08-23  4321  
49db4d4e02aabc Quinn Tran          2020-09-03  4322  				if (IS_ZIO_THRESHOLD_CAPABLE(ha))
8b4673ba3a1b99 Quinn Tran          2018-09-04  4323  					qla27xx_set_zio_threshold(vha,
8b4673ba3a1b99 Quinn Tran          2018-09-04  4324  					    ha->last_zio_threshold);
8b4673ba3a1b99 Quinn Tran          2018-09-04  4325  
b0d6cabd355ae9 Himanshu Madhani    2015-12-17  4326  				rval = qla2x00_set_exlogins_buffer(vha);
b0d6cabd355ae9 Himanshu Madhani    2015-12-17  4327  				if (rval != QLA_SUCCESS)
b0d6cabd355ae9 Himanshu Madhani    2015-12-17  4328  					goto failed;
b0d6cabd355ae9 Himanshu Madhani    2015-12-17  4329  
2f56a7f1b5d8cf Himanshu Madhani    2015-12-17  4330  				rval = qla2x00_set_exchoffld_buffer(vha);
2f56a7f1b5d8cf Himanshu Madhani    2015-12-17  4331  				if (rval != QLA_SUCCESS)
2f56a7f1b5d8cf Himanshu Madhani    2015-12-17  4332  					goto failed;
2f56a7f1b5d8cf Himanshu Madhani    2015-12-17  4333  
a9083016a5314b Giridhar Malavali   2010-04-12  4334  enable_82xx_npiv:
dda772e8e3b983 Andrew Vasquez      2009-03-24  4335  				fw_major_version = ha->fw_major_version;
7ec0effd30bb4b Atul Deshmukh       2013-08-27  4336  				if (IS_P3P_TYPE(ha))
3173167f015b77 Giridhar Malavali   2011-08-16  4337  					qla82xx_check_md_needed(vha);
6246b8a1d26c7c Giridhar Malavali   2012-02-09  4338  				else
6246b8a1d26c7c Giridhar Malavali   2012-02-09  4339  					rval = qla2x00_get_fw_version(vha);
ca9e9c3eb118d0 Andrew Vasquez      2009-06-03  4340  				if (rval != QLA_SUCCESS)
ca9e9c3eb118d0 Andrew Vasquez      2009-06-03  4341  					goto failed;
2c3dfe3f6ad8da Seokmann Ju         2007-07-05  4342  				ha->flags.npiv_supported = 0;
e315cd28b9ef0d Anirban Chakraborty 2008-11-06  4343  				if (IS_QLA2XXX_MIDTYPE(ha) &&
4d0ea24769c815 Seokmann Ju         2007-09-20  4344  					 (ha->fw_attributes & BIT_2)) {
2c3dfe3f6ad8da Seokmann Ju         2007-07-05  4345  					ha->flags.npiv_supported = 1;
4d0ea24769c815 Seokmann Ju         2007-09-20  4346  					if ((!ha->max_npiv_vports) ||
4d0ea24769c815 Seokmann Ju         2007-09-20  4347  					    ((ha->max_npiv_vports + 1) %
eb66dc60be5a72 Andrew Vasquez      2007-11-12  4348  					    MIN_MULTI_ID_FABRIC))
4d0ea24769c815 Seokmann Ju         2007-09-20  4349  						ha->max_npiv_vports =
eb66dc60be5a72 Andrew Vasquez      2007-11-12  4350  						    MIN_MULTI_ID_FABRIC - 1;
4d0ea24769c815 Seokmann Ju         2007-09-20  4351  				}
03e8c680d9b3b6 Quinn Tran          2015-12-17  4352  				qla2x00_get_resource_cnts(vha);
89c72f4245a851 Quinn Tran          2020-09-03  4353  				qla_init_iocb_limit(vha);
d743de66754a66 Andrew Vasquez      2009-03-24  4354  
8d93f5502221cc Chad Dupuis         2013-01-30  4355  				/*
8d93f5502221cc Chad Dupuis         2013-01-30  4356  				 * Allocate the array of outstanding commands
8d93f5502221cc Chad Dupuis         2013-01-30  4357  				 * now that we know the firmware resources.
8d93f5502221cc Chad Dupuis         2013-01-30  4358  				 */
8d93f5502221cc Chad Dupuis         2013-01-30  4359  				rval = qla2x00_alloc_outstanding_cmds(ha,
8d93f5502221cc Chad Dupuis         2013-01-30  4360  				    vha->req);
8d93f5502221cc Chad Dupuis         2013-01-30  4361  				if (rval != QLA_SUCCESS)
8d93f5502221cc Chad Dupuis         2013-01-30  4362  					goto failed;
8d93f5502221cc Chad Dupuis         2013-01-30  4363  
ad0a0b01f088f6 Quinn Tran          2017-12-28  4364  				if (ql2xallocfwdump && !(IS_P3P_TYPE(ha)))
e315cd28b9ef0d Anirban Chakraborty 2008-11-06  4365  					qla2x00_alloc_fw_dump(vha);
ad0a0b01f088f6 Quinn Tran          2017-12-28  4366  
cb06b8fc6fe492 Quinn Tran          2024-02-23  4367  				qla_enable_fce_trace(vha);
cb06b8fc6fe492 Quinn Tran          2024-02-23  4368  				qla_enable_eft_trace(vha);
3b6e5b9d5f4001 Chad Dupuis         2013-10-30  4369  			} else {
3b6e5b9d5f4001 Chad Dupuis         2013-10-30  4370  				goto failed;
^1da177e4c3f41 Linus Torvalds      2005-04-16  4371  			}
^1da177e4c3f41 Linus Torvalds      2005-04-16  4372  		} else {
7c3df1320e5e87 Saurav Kashyap      2011-07-14  4373  			ql_log(ql_log_fatal, vha, 0x00cd,
7c3df1320e5e87 Saurav Kashyap      2011-07-14  4374  			    "ISP Firmware failed checksum.\n");
7c3df1320e5e87 Saurav Kashyap      2011-07-14  4375  			goto failed;
^1da177e4c3f41 Linus Torvalds      2005-04-16  4376  		}
d83a80ee57f0cb Joe Carnuccio       2020-02-12  4377  
d83a80ee57f0cb Joe Carnuccio       2020-02-12  4378  		/* Enable PUREX PASSTHRU */
44d018577f1793 Quinn Tran          2021-06-23  4379  		if (ql2xrdpenable || ha->flags.scm_supported_f ||
44d018577f1793 Quinn Tran          2021-06-23  4380  		    ha->flags.edif_enabled)
d83a80ee57f0cb Joe Carnuccio       2020-02-12  4381  			qla25xx_set_els_cmds_supported(vha);
c74d88a46865a9 Andrew Vasquez      2012-08-22  4382  	} else
c74d88a46865a9 Andrew Vasquez      2012-08-22  4383  		goto failed;
^1da177e4c3f41 Linus Torvalds      2005-04-16  4384  
3db0652ef986f3 Andrew Vasquez      2008-01-31  4385  	if (!IS_FWI2_CAPABLE(ha) && !IS_QLA2100(ha) && !IS_QLA2200(ha)) {
3db0652ef986f3 Andrew Vasquez      2008-01-31  4386  		/* Enable proper parity. */
3db0652ef986f3 Andrew Vasquez      2008-01-31  4387  		spin_lock_irqsave(&ha->hardware_lock, flags);
3db0652ef986f3 Andrew Vasquez      2008-01-31  4388  		if (IS_QLA2300(ha))
3db0652ef986f3 Andrew Vasquez      2008-01-31  4389  			/* SRAM parity */
04474d3a1c9681 Bart Van Assche     2020-05-18  4390  			wrt_reg_word(&reg->hccr, HCCR_ENABLE_PARITY + 0x1);
3db0652ef986f3 Andrew Vasquez      2008-01-31  4391  		else
3db0652ef986f3 Andrew Vasquez      2008-01-31  4392  			/* SRAM, Instruction RAM and GP RAM parity */
04474d3a1c9681 Bart Van Assche     2020-05-18  4393  			wrt_reg_word(&reg->hccr, HCCR_ENABLE_PARITY + 0x7);
04474d3a1c9681 Bart Van Assche     2020-05-18  4394  		rd_reg_word(&reg->hccr);
3db0652ef986f3 Andrew Vasquez      2008-01-31  4395  		spin_unlock_irqrestore(&ha->hardware_lock, flags);
3db0652ef986f3 Andrew Vasquez      2008-01-31  4396  	}
3db0652ef986f3 Andrew Vasquez      2008-01-31  4397  
ecc89f25e225fa Joe Carnuccio       2019-03-12  4398  	if (IS_QLA27XX(ha) || IS_QLA28XX(ha))
f3982d89317797 Chad Dupuis         2014-09-25  4399  		ha->flags.fac_supported = 1;
f3982d89317797 Chad Dupuis         2014-09-25  4400  	else if (rval == QLA_SUCCESS && IS_FAC_REQUIRED(ha)) {
1d2874de809a14 Joe Carnuccio       2009-03-24  4401  		uint32_t size;
1d2874de809a14 Joe Carnuccio       2009-03-24  4402  
1d2874de809a14 Joe Carnuccio       2009-03-24  4403  		rval = qla81xx_fac_get_sector_size(vha, &size);
1d2874de809a14 Joe Carnuccio       2009-03-24  4404  		if (rval == QLA_SUCCESS) {
1d2874de809a14 Joe Carnuccio       2009-03-24  4405  			ha->flags.fac_supported = 1;
1d2874de809a14 Joe Carnuccio       2009-03-24  4406  			ha->fdt_block_size = size << 2;
1d2874de809a14 Joe Carnuccio       2009-03-24  4407  		} else {
7c3df1320e5e87 Saurav Kashyap      2011-07-14  4408  			ql_log(ql_log_warn, vha, 0x00ce,
1d2874de809a14 Joe Carnuccio       2009-03-24  4409  			    "Unsupported FAC firmware (%d.%02d.%02d).\n",
1d2874de809a14 Joe Carnuccio       2009-03-24  4410  			    ha->fw_major_version, ha->fw_minor_version,
1d2874de809a14 Joe Carnuccio       2009-03-24  4411  			    ha->fw_subminor_version);
1ca60e3b0dcbf1 Joe Carnuccio       2014-02-26  4412  
0d6a536cb1fcab Joe Carnuccio       2022-01-09  4413  			if (IS_QLA83XX(ha)) {
6246b8a1d26c7c Giridhar Malavali   2012-02-09  4414  				ha->flags.fac_supported = 0;
6246b8a1d26c7c Giridhar Malavali   2012-02-09  4415  				rval = QLA_SUCCESS;
6246b8a1d26c7c Giridhar Malavali   2012-02-09  4416  			}
1d2874de809a14 Joe Carnuccio       2009-03-24  4417  		}
1d2874de809a14 Joe Carnuccio       2009-03-24  4418  	}
ca9e9c3eb118d0 Andrew Vasquez      2009-06-03  4419  failed:
^1da177e4c3f41 Linus Torvalds      2005-04-16  4420  	if (rval) {
7c3df1320e5e87 Saurav Kashyap      2011-07-14  4421  		ql_log(ql_log_fatal, vha, 0x00cf,
7c3df1320e5e87 Saurav Kashyap      2011-07-14  4422  		    "Setup chip ****FAILED****.\n");
^1da177e4c3f41 Linus Torvalds      2005-04-16  4423  	}
^1da177e4c3f41 Linus Torvalds      2005-04-16  4424  
^1da177e4c3f41 Linus Torvalds      2005-04-16  4425  	return (rval);
^1da177e4c3f41 Linus Torvalds      2005-04-16  4426  }
^1da177e4c3f41 Linus Torvalds      2005-04-16  4427  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 00/11] qla2xxx misc. bug fixes
  2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
                   ` (10 preceding siblings ...)
  2024-02-23  7:45 ` [PATCH 11/11] qla2xxx: Update version to 10.02.09.200-k Nilesh Javali
@ 2024-02-27  4:10 ` Himanshu Madhani
  11 siblings, 0 replies; 14+ messages in thread
From: Himanshu Madhani @ 2024-02-27  4:10 UTC (permalink / raw)
  To: Nilesh Javali, martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar,
	emilne, jmeneghi



On 2/22/24 23:45, Nilesh Javali wrote:
> Martin,
> 
> Please apply the qla2xxx driver miscellaneous bug fixes
> to the scsi tree at your earliest convenience.
> 
> Thanks,
> Nilesh
> 
> Bikash Hazarika (1):
>    qla2xxx: Update manufacturer detail
> 
> Nilesh Javali (1):
>    qla2xxx: Update version to 10.02.09.200-k
> 
> Quinn Tran (6):
>    qla2xxx: Prevent command send on chip reset
>    qla2xxx: Fix N2N stuck connection
>    qla2xxx: Split FCE|EFT trace control
>    qla2xxx: NVME|FCP prefer flag not being honored
>    qla2xxx: Fix command flush on cable pull
>    qla2xxx: Delay IO Abort on PCI error
> 
> Saurav Kashyap (3):
>    qla2xxx: Fix double free of the ha->vp_map pointer.
>    qla2xxx: Fix double free of fcport
>    qla2xxx: change debug message during driver unload
> 
>   drivers/scsi/qla2xxx/qla_attr.c    |  14 +++-
>   drivers/scsi/qla2xxx/qla_def.h     |   2 +-
>   drivers/scsi/qla2xxx/qla_gbl.h     |   2 +-
>   drivers/scsi/qla2xxx/qla_init.c    | 126 +++++++++++++++--------------
>   drivers/scsi/qla2xxx/qla_iocb.c    |  68 ++++++++++------
>   drivers/scsi/qla2xxx/qla_mbx.c     |   2 +-
>   drivers/scsi/qla2xxx/qla_os.c      |   3 +-
>   drivers/scsi/qla2xxx/qla_target.c  |  10 +++
>   drivers/scsi/qla2xxx/qla_version.h |   4 +-
>   9 files changed, 138 insertions(+), 93 deletions(-)
> 
> 
> base-commit: f4469f3858352ad1197434557150b1f7086762a0

After you fix the warning reported in patch #3 of this series… you can add

For the Series,

Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>

-- 
Himanshu Madhani                                Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2024-02-27  4:10 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-23  7:45 [PATCH 00/11] qla2xxx misc. bug fixes Nilesh Javali
2024-02-23  7:45 ` [PATCH 01/11] qla2xxx: Prevent command send on chip reset Nilesh Javali
2024-02-23  7:45 ` [PATCH 02/11] qla2xxx: Fix N2N stuck connection Nilesh Javali
2024-02-23  7:45 ` [PATCH 03/11] qla2xxx: Split FCE|EFT trace control Nilesh Javali
2024-02-24  2:02   ` kernel test robot
2024-02-23  7:45 ` [PATCH 04/11] qla2xxx: Update manufacturer detail Nilesh Javali
2024-02-23  7:45 ` [PATCH 05/11] qla2xxx: NVME|FCP prefer flag not being honored Nilesh Javali
2024-02-23  7:45 ` [PATCH 06/11] qla2xxx: Fix command flush on cable pull Nilesh Javali
2024-02-23  7:45 ` [PATCH 07/11] qla2xxx: Fix double free of the ha->vp_map pointer Nilesh Javali
2024-02-23  7:45 ` [PATCH 08/11] qla2xxx: Fix double free of fcport Nilesh Javali
2024-02-23  7:45 ` [PATCH 09/11] qla2xxx: change debug message during driver unload Nilesh Javali
2024-02-23  7:45 ` [PATCH 10/11] qla2xxx: Delay IO Abort on PCI error Nilesh Javali
2024-02-23  7:45 ` [PATCH 11/11] qla2xxx: Update version to 10.02.09.200-k Nilesh Javali
2024-02-27  4:10 ` [PATCH 00/11] qla2xxx misc. bug fixes Himanshu Madhani

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.