linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] qla2xxx driver bug fixes
@ 2020-08-05  4:43 Nilesh Javali
  2020-08-05  4:43 ` [PATCH 01/10] qla2xxx: flush all sessions on zone disable Nilesh Javali
                   ` (9 more replies)
  0 siblings, 10 replies; 15+ messages in thread
From: Nilesh Javali @ 2020-08-05  4:43 UTC (permalink / raw)
  To: martin.petersen; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

Martin,

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

Thanks,
Nilesh

Arun Easi (2):
  qla2xxx: Allow ql2xextended_error_logging special value 1 to be set
    anytime
  qla2xxx: Fix WARN_ON in qla_nvme_register_hba

Nilesh Javali (1):
  Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command"

Quinn Tran (6):
  qla2xxx: flush all sessions on zone disable
  qla2xxx: flush IO on zone disable
  qla2xxx: Indicate correct supported speeds for Mezz card
  qla2xxx: fix login timeout
  qla2xxx: reduce noisy debug message
  qla2xxx: fix null pointer access while connections disconnect from
    subsystem

Saurav Kashyap (1):
  qla2xxx: Check if FW supports MQ before enabling

 drivers/scsi/qla2xxx/qla_dbg.h    |  3 ++
 drivers/scsi/qla2xxx/qla_def.h    |  1 +
 drivers/scsi/qla2xxx/qla_gs.c     | 49 +++++++++++++++++++++++++------
 drivers/scsi/qla2xxx/qla_isr.c    |  4 +--
 drivers/scsi/qla2xxx/qla_mbx.c    |  8 -----
 drivers/scsi/qla2xxx/qla_nvme.c   | 15 +++++++++-
 drivers/scsi/qla2xxx/qla_os.c     |  5 ++++
 drivers/scsi/qla2xxx/qla_target.c |  2 +-
 8 files changed, 66 insertions(+), 21 deletions(-)


base-commit: b12149f2698ce25621ed0413cbb4fc26dd8ab3c1
-- 
2.19.0.rc0


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

* [PATCH 01/10] qla2xxx: flush all sessions on zone disable
  2020-08-05  4:43 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
@ 2020-08-05  4:43 ` Nilesh Javali
  2020-08-05  4:43 ` [PATCH 02/10] qla2xxx: flush IO " Nilesh Javali
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Nilesh Javali @ 2020-08-05  4:43 UTC (permalink / raw)
  To: martin.petersen; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Quinn Tran <qutran@marvell.com>

On Zone Disable, certain switch would ignore all
commands. This cause timeout for both switch
scan command and abort of that command. On detection
of this condition, all sessions will be shutdown.

Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_gs.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
index 42c3ad27f1cb..c5529da1df59 100644
--- a/drivers/scsi/qla2xxx/qla_gs.c
+++ b/drivers/scsi/qla2xxx/qla_gs.c
@@ -3734,6 +3734,18 @@ static void qla2x00_async_gpnft_gnnft_sp_done(srb_t *sp, int res)
 		unsigned long flags;
 		const char *name = sp->name;
 
+		if (res == QLA_OS_TIMER_EXPIRED) {
+			/* switch is ignoring all commands.
+			 * This might be a zone disable behavior.
+			 * This means we hit 64s timeout.
+			 * 22s GPNFT + 44s Abort = 64s
+			 */
+			ql_dbg(ql_dbg_disc, vha, 0xffff,
+			       "%s: Switch Zone check please .\n",
+			       name);
+			qla2x00_mark_all_devices_lost(vha);
+		}
+
 		/*
 		 * We are in an Interrupt context, queue up this
 		 * sp for GNNFT_DONE work. This will allow all
-- 
2.19.0.rc0


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

* [PATCH 02/10] qla2xxx: flush IO on zone disable
  2020-08-05  4:43 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
  2020-08-05  4:43 ` [PATCH 01/10] qla2xxx: flush all sessions on zone disable Nilesh Javali
@ 2020-08-05  4:43 ` Nilesh Javali
  2020-08-05  4:43 ` [PATCH 03/10] qla2xxx: Indicate correct supported speeds for Mezz card Nilesh Javali
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Nilesh Javali @ 2020-08-05  4:43 UTC (permalink / raw)
  To: martin.petersen; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Quinn Tran <qutran@marvell.com>

Perform implicit logout to flush io on zone disable.

Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_gs.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
index c5529da1df59..d9ce8d31457a 100644
--- a/drivers/scsi/qla2xxx/qla_gs.c
+++ b/drivers/scsi/qla2xxx/qla_gs.c
@@ -3436,7 +3436,6 @@ void qla24xx_async_gnnft_done(scsi_qla_host_t *vha, srb_t *sp)
 			list_for_each_entry(fcport, &vha->vp_fcports, list) {
 				if ((fcport->flags & FCF_FABRIC_DEVICE) != 0) {
 					fcport->scan_state = QLA_FCPORT_SCAN;
-					fcport->logout_on_delete = 0;
 				}
 			}
 			goto login_logout;
-- 
2.19.0.rc0


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

* [PATCH 03/10] qla2xxx: Indicate correct supported speeds for Mezz card
  2020-08-05  4:43 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
  2020-08-05  4:43 ` [PATCH 01/10] qla2xxx: flush all sessions on zone disable Nilesh Javali
  2020-08-05  4:43 ` [PATCH 02/10] qla2xxx: flush IO " Nilesh Javali
@ 2020-08-05  4:43 ` Nilesh Javali
  2020-08-05  4:43 ` [PATCH 04/10] qla2xxx: fix login timeout Nilesh Javali
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Nilesh Javali @ 2020-08-05  4:43 UTC (permalink / raw)
  To: martin.petersen; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Quinn Tran <qutran@marvell.com>

Correct the supported speeds for 16G Mezz card.

Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_gs.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
index d9ce8d31457a..8c30d9dbb48c 100644
--- a/drivers/scsi/qla2xxx/qla_gs.c
+++ b/drivers/scsi/qla2xxx/qla_gs.c
@@ -1505,11 +1505,11 @@ qla2x00_prep_ct_fdmi_req(struct ct_sns_pkt *p, uint16_t cmd,
 static uint
 qla25xx_fdmi_port_speed_capability(struct qla_hw_data *ha)
 {
+	uint speeds = 0;
+
 	if (IS_CNA_CAPABLE(ha))
 		return FDMI_PORT_SPEED_10GB;
 	if (IS_QLA28XX(ha) || IS_QLA27XX(ha)) {
-		uint speeds = 0;
-
 		if (ha->max_supported_speed == 2) {
 			if (ha->min_supported_speed <= 6)
 				speeds |= FDMI_PORT_SPEED_64GB;
@@ -1536,9 +1536,16 @@ qla25xx_fdmi_port_speed_capability(struct qla_hw_data *ha)
 		}
 		return speeds;
 	}
-	if (IS_QLA2031(ha))
-		return FDMI_PORT_SPEED_16GB|FDMI_PORT_SPEED_8GB|
-			FDMI_PORT_SPEED_4GB;
+	if (IS_QLA2031(ha)) {
+		if ((ha->pdev->subsystem_vendor == 0x103C) &&
+		    (ha->pdev->subsystem_device == 0x8002)) {
+			speeds = FDMI_PORT_SPEED_16GB;
+		} else {
+			speeds = FDMI_PORT_SPEED_16GB|FDMI_PORT_SPEED_8GB|
+				FDMI_PORT_SPEED_4GB;
+		}
+		return speeds;
+	}
 	if (IS_QLA25XX(ha))
 		return FDMI_PORT_SPEED_8GB|FDMI_PORT_SPEED_4GB|
 			FDMI_PORT_SPEED_2GB|FDMI_PORT_SPEED_1GB;
-- 
2.19.0.rc0


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

* [PATCH 04/10] qla2xxx: fix login timeout
  2020-08-05  4:43 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
                   ` (2 preceding siblings ...)
  2020-08-05  4:43 ` [PATCH 03/10] qla2xxx: Indicate correct supported speeds for Mezz card Nilesh Javali
@ 2020-08-05  4:43 ` Nilesh Javali
  2020-08-05  4:43 ` [PATCH 05/10] qla2xxx: reduce noisy debug message Nilesh Javali
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Nilesh Javali @ 2020-08-05  4:43 UTC (permalink / raw)
  To: martin.petersen; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Quinn Tran <qutran@marvell.com>

Multipath errors were seen during failback due to login timeout.
The remote device sent LOGO, the local host teared down the session
and did relogin. The RSCN arrived indicates remote device is going
through failover after which the relogin is in a 20s timeout phase.
At this point the driver is stuck in the relogin process.
Add a fix to delete the session as part of abort/flush the login.

Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_gs.c     | 19 ++++++++++++++++---
 drivers/scsi/qla2xxx/qla_target.c |  2 +-
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
index 8c30d9dbb48c..2d7a47a2873b 100644
--- a/drivers/scsi/qla2xxx/qla_gs.c
+++ b/drivers/scsi/qla2xxx/qla_gs.c
@@ -3536,10 +3536,23 @@ void qla24xx_async_gnnft_done(scsi_qla_host_t *vha, srb_t *sp)
 		}
 
 		if (fcport->scan_state != QLA_FCPORT_FOUND) {
+			bool do_delete = false;
+
+			if (fcport->scan_needed &&
+			    fcport->disc_state == DSC_LOGIN_PEND) {
+				/* his cable just got disconnected after we
+				 * send him a login. Do delete to prevent
+				 * timeout
+				 */
+				fcport->logout_on_delete = 1;
+				do_delete = true;
+			}
+
 			fcport->scan_needed = 0;
-			if ((qla_dual_mode_enabled(vha) ||
-				qla_ini_mode_enabled(vha)) &&
-			    atomic_read(&fcport->state) == FCS_ONLINE) {
+			if (((qla_dual_mode_enabled(vha) ||
+			      qla_ini_mode_enabled(vha)) &&
+			    atomic_read(&fcport->state) == FCS_ONLINE) ||
+				do_delete) {
 				if (fcport->loop_id != FC_NO_LOOP_ID) {
 					if (fcport->flags & FCF_FCP2_DEVICE)
 						fcport->logout_on_delete = 0;
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
index fbb80a043b4f..90289162dbd4 100644
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -1270,7 +1270,7 @@ void qlt_schedule_sess_for_deletion(struct fc_port *sess)
 
 	qla24xx_chk_fcp_state(sess);
 
-	ql_dbg(ql_dbg_tgt, sess->vha, 0xe001,
+	ql_dbg(ql_dbg_disc, sess->vha, 0xe001,
 	    "Scheduling sess %p for deletion %8phC\n",
 	    sess, sess->port_name);
 
-- 
2.19.0.rc0


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

* [PATCH 05/10] qla2xxx: reduce noisy debug message
  2020-08-05  4:43 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
                   ` (3 preceding siblings ...)
  2020-08-05  4:43 ` [PATCH 04/10] qla2xxx: fix login timeout Nilesh Javali
@ 2020-08-05  4:43 ` Nilesh Javali
  2020-08-05  4:43 ` [PATCH 06/10] qla2xxx: Allow ql2xextended_error_logging special value 1 to be set anytime Nilesh Javali
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Nilesh Javali @ 2020-08-05  4:43 UTC (permalink / raw)
  To: martin.petersen; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Quinn Tran <qutran@marvell.com>

Update debug level and message for ELS IOCB done.

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

diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index 27bcd346af7c..ab5275dbc338 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -2024,8 +2024,8 @@ qla24xx_els_ct_entry(scsi_qla_host_t *vha, struct req_que *req,
 				res = DID_ERROR << 16;
 			}
 		}
-		ql_dbg(ql_dbg_user, vha, 0x503f,
-		    "ELS IOCB Done -%s error hdl=%x comp_status=0x%x error subcode 1=0x%x error subcode 2=0x%x total_byte=0x%x\n",
+		ql_dbg(ql_dbg_disc, vha, 0x503f,
+		    "ELS IOCB Done -%s hdl=%x comp_status=0x%x error subcode 1=0x%x error subcode 2=0x%x total_byte=0x%x\n",
 		    type, sp->handle, comp_status, fw_status[1], fw_status[2],
 		    le32_to_cpu(ese->total_byte_count));
 		goto els_ct_done;
-- 
2.19.0.rc0


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

* [PATCH 06/10] qla2xxx: Allow ql2xextended_error_logging special value 1 to be set anytime
  2020-08-05  4:43 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
                   ` (4 preceding siblings ...)
  2020-08-05  4:43 ` [PATCH 05/10] qla2xxx: reduce noisy debug message Nilesh Javali
@ 2020-08-05  4:43 ` Nilesh Javali
  2020-08-05  4:43 ` [PATCH 07/10] qla2xxx: Fix WARN_ON in qla_nvme_register_hba Nilesh Javali
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Nilesh Javali @ 2020-08-05  4:43 UTC (permalink / raw)
  To: martin.petersen; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Arun Easi <aeasi@marvell.com>

ql2xextended_error_logging could now be set anytime to 1 to get the default
mask value, as opposed to load time only.

Signed-off-by: Arun Easi <aeasi@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_dbg.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/scsi/qla2xxx/qla_dbg.h b/drivers/scsi/qla2xxx/qla_dbg.h
index 91eb6901815c..e1d7de63e8f8 100644
--- a/drivers/scsi/qla2xxx/qla_dbg.h
+++ b/drivers/scsi/qla2xxx/qla_dbg.h
@@ -380,5 +380,8 @@ extern int qla24xx_soft_reset(struct qla_hw_data *);
 static inline int
 ql_mask_match(uint level)
 {
+	if (ql2xextended_error_logging == 1)
+		ql2xextended_error_logging = QL_DBG_DEFAULT1_MASK;
+
 	return (level & ql2xextended_error_logging) == level;
 }
-- 
2.19.0.rc0


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

* [PATCH 07/10] qla2xxx: Fix WARN_ON in qla_nvme_register_hba
  2020-08-05  4:43 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
                   ` (5 preceding siblings ...)
  2020-08-05  4:43 ` [PATCH 06/10] qla2xxx: Allow ql2xextended_error_logging special value 1 to be set anytime Nilesh Javali
@ 2020-08-05  4:43 ` Nilesh Javali
  2020-08-05  4:44 ` [PATCH 08/10] qla2xxx: Check if FW supports MQ before enabling Nilesh Javali
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Nilesh Javali @ 2020-08-05  4:43 UTC (permalink / raw)
  To: martin.petersen; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Arun Easi <aeasi@marvell.com>

qla_nvme_register_hba puts out a warning when there are not enough
queue pairs available for FC-NVME.
Just fail the NVME registration rather than a WARNING + Call Trace.

Signed-off-by: Arun Easi <aeasi@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_def.h  |  1 +
 drivers/scsi/qla2xxx/qla_nvme.c | 10 +++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index 8c92af5e4390..1bc090d8a71b 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -3880,6 +3880,7 @@ struct qla_hw_data {
 		uint32_t	scm_supported_f:1;
 				/* Enabled in Driver */
 		uint32_t	scm_enabled:1;
+		uint32_t	max_req_queue_warned:1;
 	} flags;
 
 	uint16_t max_exchg;
diff --git a/drivers/scsi/qla2xxx/qla_nvme.c b/drivers/scsi/qla2xxx/qla_nvme.c
index d66d47a0f958..be1d49f5c622 100644
--- a/drivers/scsi/qla2xxx/qla_nvme.c
+++ b/drivers/scsi/qla2xxx/qla_nvme.c
@@ -686,7 +686,15 @@ int qla_nvme_register_hba(struct scsi_qla_host *vha)
 	tmpl = &qla_nvme_fc_transport;
 
 	WARN_ON(vha->nvme_local_port);
-	WARN_ON(ha->max_req_queues < 3);
+
+	if (ha->max_req_queues < 3) {
+		if (!ha->flags.max_req_queue_warned)
+			ql_log(ql_log_info, vha, 0x2120,
+			       "%s: Disabling FC-NVME due to lack of free queue pairs (%d).\n",
+			       __func__, ha->max_req_queues);
+		ha->flags.max_req_queue_warned = 1;
+		return ret;
+	}
 
 	qla_nvme_fc_transport.max_hw_queues =
 	    min((uint8_t)(qla_nvme_fc_transport.max_hw_queues),
-- 
2.19.0.rc0


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

* [PATCH 08/10] qla2xxx: Check if FW supports MQ before enabling
  2020-08-05  4:43 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
                   ` (6 preceding siblings ...)
  2020-08-05  4:43 ` [PATCH 07/10] qla2xxx: Fix WARN_ON in qla_nvme_register_hba Nilesh Javali
@ 2020-08-05  4:44 ` Nilesh Javali
  2020-08-05  4:44 ` [PATCH 09/10] qla2xxx: fix null pointer access while connections disconnect from subsystem Nilesh Javali
  2020-08-05  4:44 ` [PATCH 10/10] Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command" Nilesh Javali
  9 siblings, 0 replies; 15+ messages in thread
From: Nilesh Javali @ 2020-08-05  4:44 UTC (permalink / raw)
  To: martin.petersen; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Saurav Kashyap <skashyap@marvell.com>

OS boot during Boot from SAN was stuck at dracut emergency shell
after enabling nvme driver parameter. For non MQ support the driver
was enabling MQ. Add a check to confirm if FW supports MQ.

Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_os.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 9b59f032a569..fda812b9b564 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -2017,6 +2017,11 @@ qla2x00_iospace_config(struct qla_hw_data *ha)
 	/* Determine queue resources */
 	ha->max_req_queues = ha->max_rsp_queues = 1;
 	ha->msix_count = QLA_BASE_VECTORS;
+
+	/* Check if FW supports MQ or not */
+	if (!(ha->fw_attributes & BIT_6))
+		goto mqiobase_exit;
+
 	if (!ql2xmqsupport || !ql2xnvmeenable ||
 	    (!IS_QLA25XX(ha) && !IS_QLA81XX(ha)))
 		goto mqiobase_exit;
-- 
2.19.0.rc0


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

* [PATCH 09/10] qla2xxx: fix null pointer access while connections disconnect from subsystem
  2020-08-05  4:43 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
                   ` (7 preceding siblings ...)
  2020-08-05  4:44 ` [PATCH 08/10] qla2xxx: Check if FW supports MQ before enabling Nilesh Javali
@ 2020-08-05  4:44 ` Nilesh Javali
  2020-08-05  4:44 ` [PATCH 10/10] Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command" Nilesh Javali
  9 siblings, 0 replies; 15+ messages in thread
From: Nilesh Javali @ 2020-08-05  4:44 UTC (permalink / raw)
  To: martin.petersen; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Quinn Tran <qutran@marvell.com>

NVMEAsync command is being submitted to QLA, while the same nvme controller
is in the middle of reset. The reset path has deleted the association and
freed aen_op->fcp_req.private. Add a check for this private pointer
before issuing the command.

...
 6 [ffffb656ca11fce0] page_fault at ffffffff8c00114e
    [exception RIP: qla_nvme_post_cmd+394]
    RIP: ffffffffc0d012ba  RSP: ffffb656ca11fd98  RFLAGS: 00010206
    RAX: ffff8fb039eda228  RBX: ffff8fb039eda200  RCX: 00000000000da161
    RDX: ffffffffc0d4d0f0  RSI: ffffffffc0d26c9b  RDI: ffff8fb039eda220
    RBP: 0000000000000013   R8: ffff8fb47ff6aa80   R9: 0000000000000002
    R10: 0000000000000000  R11: ffffb656ca11fdc8  R12: ffff8fb27d04a3b0
    R13: ffff8fc46dd98a58  R14: 0000000000000000  R15: ffff8fc4540f0000
    ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
 7 [ffffb656ca11fe08] nvme_fc_start_fcp_op at ffffffffc0241568 [nvme_fc]
 8 [ffffb656ca11fe50] nvme_fc_submit_async_event at ffffffffc0241901 [nvme_fc]
 9 [ffffb656ca11fe68] nvme_async_event_work at ffffffffc014543d [nvme_core]
10 [ffffb656ca11fe98] process_one_work at ffffffff8b6cd437
11 [ffffb656ca11fed8] worker_thread at ffffffff8b6cdcef
12 [ffffb656ca11ff10] kthread at ffffffff8b6d3402
13 [ffffb656ca11ff50] ret_from_fork at ffffffff8c000255

--
PID: 37824  TASK: ffff8fb033063d80  CPU: 20  COMMAND: "kworker/u97:451"
 0 [ffffb656ce1abc28] __schedule at ffffffff8be629e3
 1 [ffffb656ce1abcc8] schedule at ffffffff8be62fe8
 2 [ffffb656ce1abcd0] schedule_timeout at ffffffff8be671ed
 3 [ffffb656ce1abd70] wait_for_completion at ffffffff8be639cf
 4 [ffffb656ce1abdd0] flush_work at ffffffff8b6ce2d5
 5 [ffffb656ce1abe70] nvme_stop_ctrl at ffffffffc0144900 [nvme_core]
 6 [ffffb656ce1abe80] nvme_fc_reset_ctrl_work at ffffffffc0243445 [nvme_fc]
 7 [ffffb656ce1abe98] process_one_work at ffffffff8b6cd437
 8 [ffffb656ce1abed8] worker_thread at ffffffff8b6cdb50
 9 [ffffb656ce1abf10] kthread at ffffffff8b6d3402
10 [ffffb656ce1abf50] ret_from_fork at ffffffff8c000255

Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_nvme.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/scsi/qla2xxx/qla_nvme.c b/drivers/scsi/qla2xxx/qla_nvme.c
index be1d49f5c622..f451683db75c 100644
--- a/drivers/scsi/qla2xxx/qla_nvme.c
+++ b/drivers/scsi/qla2xxx/qla_nvme.c
@@ -535,6 +535,11 @@ static int qla_nvme_post_cmd(struct nvme_fc_local_port *lport,
 	struct nvme_private *priv = fd->private;
 	struct qla_nvme_rport *qla_rport = rport->private;
 
+	if (!priv) {
+		/* nvme association has been torn down */
+		return rval;
+	}
+
 	fcport = qla_rport->fcport;
 
 	if (!qpair || !fcport || (qpair && !qpair->fw_started) ||
-- 
2.19.0.rc0


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

* [PATCH 10/10] Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command"
  2020-08-05  4:43 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
                   ` (8 preceding siblings ...)
  2020-08-05  4:44 ` [PATCH 09/10] qla2xxx: fix null pointer access while connections disconnect from subsystem Nilesh Javali
@ 2020-08-05  4:44 ` Nilesh Javali
  9 siblings, 0 replies; 15+ messages in thread
From: Nilesh Javali @ 2020-08-05  4:44 UTC (permalink / raw)
  To: martin.petersen; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

FCoE adapter initialization failed for ISP8021.

This reverts commit 3cb182b3fa8b7a61f05c671525494697cba39c6a.

Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_mbx.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 73883435ab58..93aafef7f21c 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -334,14 +334,6 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
 			if (time_after(jiffies, wait_time))
 				break;
 
-			/*
-			 * Check if it's UNLOADING, cause we cannot poll in
-			 * this case, or else a NULL pointer dereference
-			 * is triggered.
-			 */
-			if (unlikely(test_bit(UNLOADING, &base_vha->dpc_flags)))
-				return QLA_FUNCTION_TIMEOUT;
-
 			/* Check for pending interrupts. */
 			qla2x00_poll(ha->rsp_q_map[0]);
 
-- 
2.19.0.rc0


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

* [PATCH 00/10] qla2xxx driver bug fixes
@ 2023-07-12  9:05 Nilesh Javali
  0 siblings, 0 replies; 15+ messages in thread
From: Nilesh Javali @ 2023-07-12  9:05 UTC (permalink / raw)
  To: martin.petersen
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, agurumurthy, sdeodhar

Martin,

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

Thanks,
Nilesh

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

Quinn Tran (9):
  qla2xxx: Fix deletion race condition
  qla2xxx: Adjust iocb resource on qpair create
  qla2xxx: Limit TMF to 8 per function
  qla2xxx: Fix command flush during TMF
  qla2xxx: Fix erroneous link up failure
  qla2xxx: Fix session hang in gnl
  qla2xxx: Turn off noisy message log
  qla2xxx: Fix TMF leak through
  qla2xxx: fix inconsistent TMF timeout

 drivers/scsi/qla2xxx/qla_def.h     |   9 +-
 drivers/scsi/qla2xxx/qla_gbl.h     |   2 +
 drivers/scsi/qla2xxx/qla_init.c    | 217 ++++++++++++++++++-----------
 drivers/scsi/qla2xxx/qla_iocb.c    |   1 +
 drivers/scsi/qla2xxx/qla_isr.c     |   7 +-
 drivers/scsi/qla2xxx/qla_mbx.c     |   3 +
 drivers/scsi/qla2xxx/qla_nvme.c    |   3 +-
 drivers/scsi/qla2xxx/qla_os.c      |  11 +-
 drivers/scsi/qla2xxx/qla_target.c  |  14 +-
 drivers/scsi/qla2xxx/qla_version.h |   4 +-
 10 files changed, 169 insertions(+), 102 deletions(-)


base-commit: 6f0a92fd7db1507b203111ee53632eeeba2daca5
-- 
2.23.1


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

* RE: [PATCH 00/10] qla2xxx driver bug fixes
  2021-09-08  7:57 ` Chaitanya Kulkarni
@ 2021-09-08  9:12   ` Nilesh Javali
  0 siblings, 0 replies; 15+ messages in thread
From: Nilesh Javali @ 2021-09-08  9:12 UTC (permalink / raw)
  To: Chaitanya Kulkarni, martin.petersen, linux-nvme
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, djeffery, loberman

Chaitanya,

> -----Original Message-----
> From: Chaitanya Kulkarni <chaitanyak@nvidia.com>
> Sent: Wednesday, September 8, 2021 1:28 PM
> To: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com; linux-
> nvme@lists.infradead.org
> Cc: linux-scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-
> Storage-Upstream@marvell.com>; djeffery@redhat.com;
> loberman@redhat.com
> Subject: [EXT] Re: [PATCH 00/10] qla2xxx driver bug fixes
> 
> External Email
> 
> ----------------------------------------------------------------------
> On 9/8/21 12:28 AM, Nilesh Javali wrote:> Martin,
>  >
>  > Please apply the qla2xxx driver bug fixes to the scsi tree at your
>  > earliest convenience.
>  >
>  > Thanks,
>  > Nilesh
>  >
> 
> why linux-nvme ?

Please ignore. This is meant for Linux-scsi only.
I apologize for mistakenly sending it to Linux-nvme.

--
Nilesh



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

* Re: [PATCH 00/10] qla2xxx driver bug fixes
  2021-09-08  7:28 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
@ 2021-09-08  7:57 ` Chaitanya Kulkarni
  2021-09-08  9:12   ` Nilesh Javali
  0 siblings, 1 reply; 15+ messages in thread
From: Chaitanya Kulkarni @ 2021-09-08  7:57 UTC (permalink / raw)
  To: Nilesh Javali, martin.petersen, linux-nvme
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, djeffery, loberman

On 9/8/21 12:28 AM, Nilesh Javali wrote:> Martin,
 >
 > Please apply the qla2xxx driver bug fixes to the scsi tree at your
 > earliest convenience.
 >
 > Thanks,
 > Nilesh
 >

why linux-nvme ?

 >   drivers/scsi/qla2xxx/qla_attr.c    | 24 ++++++++-
 >   drivers/scsi/qla2xxx/qla_bsg.c     | 48 +++++++++++++++++
 >   drivers/scsi/qla2xxx/qla_bsg.h     |  7 +++
 >   drivers/scsi/qla2xxx/qla_def.h     |  4 +-
 >   drivers/scsi/qla2xxx/qla_gbl.h     |  4 ++
 >   drivers/scsi/qla2xxx/qla_gs.c      |  3 +-
 >   drivers/scsi/qla2xxx/qla_init.c    | 17 +++---
 >   drivers/scsi/qla2xxx/qla_mbx.c     | 33 ++++++++++++
 >   drivers/scsi/qla2xxx/qla_nvme.c    | 20 ++++++-
 >   drivers/scsi/qla2xxx/qla_os.c      | 86 +++++++++++++++---------------
 >   drivers/scsi/qla2xxx/qla_version.h |  6 +--

no drivers/nvme/ in the above change log.

 >   11 files changed, 191 insertions(+), 61 deletions(-)
 >
 >
 > base-commit: 9b5ac8ab4e8bf5636d1d425aee68ddf45af12057
 >

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

* [PATCH 00/10] qla2xxx driver bug fixes
@ 2021-09-08  7:28 Nilesh Javali
  2021-09-08  7:57 ` Chaitanya Kulkarni
  0 siblings, 1 reply; 15+ messages in thread
From: Nilesh Javali @ 2021-09-08  7:28 UTC (permalink / raw)
  To: martin.petersen, linux-nvme
  Cc: linux-scsi, GR-QLogic-Storage-Upstream, djeffery, loberman

Martin,

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

Thanks,
Nilesh

Arun Easi (2):
  qla2xxx: Fix crash in NVME abort path
  qla2xxx: Fix kernel crash when accessing port_speed sysfs file

Bikash Hazarika (1):
  qla2xxx: Add support for mailbox passthru

Manish Rangankar (1):
  qla2xxx: Move heart beat handling from dpc thread to workqueue

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

Quinn Tran (2):
  qla2xxx: edif: Use link event to wake up app
  qla2xxx: Fix use after free in eh_abort path

Saurav Kashyap (2):
  qla2xxx: Display 16G only as supported speeds for 3830c card
  qla2xxx: Check for firmware capability before creating QPair

Shreyas Deodhar (1):
  qla2xxx: Call process_response_queue() in Tx path

 drivers/scsi/qla2xxx/qla_attr.c    | 24 ++++++++-
 drivers/scsi/qla2xxx/qla_bsg.c     | 48 +++++++++++++++++
 drivers/scsi/qla2xxx/qla_bsg.h     |  7 +++
 drivers/scsi/qla2xxx/qla_def.h     |  4 +-
 drivers/scsi/qla2xxx/qla_gbl.h     |  4 ++
 drivers/scsi/qla2xxx/qla_gs.c      |  3 +-
 drivers/scsi/qla2xxx/qla_init.c    | 17 +++---
 drivers/scsi/qla2xxx/qla_mbx.c     | 33 ++++++++++++
 drivers/scsi/qla2xxx/qla_nvme.c    | 20 ++++++-
 drivers/scsi/qla2xxx/qla_os.c      | 86 +++++++++++++++---------------
 drivers/scsi/qla2xxx/qla_version.h |  6 +--
 11 files changed, 191 insertions(+), 61 deletions(-)


base-commit: 9b5ac8ab4e8bf5636d1d425aee68ddf45af12057
-- 
2.19.0.rc0


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

end of thread, other threads:[~2023-07-12  9:06 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-05  4:43 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
2020-08-05  4:43 ` [PATCH 01/10] qla2xxx: flush all sessions on zone disable Nilesh Javali
2020-08-05  4:43 ` [PATCH 02/10] qla2xxx: flush IO " Nilesh Javali
2020-08-05  4:43 ` [PATCH 03/10] qla2xxx: Indicate correct supported speeds for Mezz card Nilesh Javali
2020-08-05  4:43 ` [PATCH 04/10] qla2xxx: fix login timeout Nilesh Javali
2020-08-05  4:43 ` [PATCH 05/10] qla2xxx: reduce noisy debug message Nilesh Javali
2020-08-05  4:43 ` [PATCH 06/10] qla2xxx: Allow ql2xextended_error_logging special value 1 to be set anytime Nilesh Javali
2020-08-05  4:43 ` [PATCH 07/10] qla2xxx: Fix WARN_ON in qla_nvme_register_hba Nilesh Javali
2020-08-05  4:44 ` [PATCH 08/10] qla2xxx: Check if FW supports MQ before enabling Nilesh Javali
2020-08-05  4:44 ` [PATCH 09/10] qla2xxx: fix null pointer access while connections disconnect from subsystem Nilesh Javali
2020-08-05  4:44 ` [PATCH 10/10] Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command" Nilesh Javali
2021-09-08  7:28 [PATCH 00/10] qla2xxx driver bug fixes Nilesh Javali
2021-09-08  7:57 ` Chaitanya Kulkarni
2021-09-08  9:12   ` Nilesh Javali
2023-07-12  9:05 Nilesh Javali

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).