* [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(®->hccr, (HCCR_ENABLE_PARITY + 0x0));
04474d3a1c9681 Bart Van Assche 2020-05-18 4284 rd_reg_word(®->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(®->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(®->hccr, HCCR_ENABLE_PARITY + 0x7);
04474d3a1c9681 Bart Van Assche 2020-05-18 4394 rd_reg_word(®->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.