Commit 897d68eb authored by Arun Easi's avatar Arun Easi Committed by Martin K. Petersen
Browse files

scsi: qla2xxx: Fix WARN_ON in qla_nvme_register_hba

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.

Link: https://lore.kernel.org/r/20200806111014.28434-8-njavali@marvell.com


Reviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: default avatarArun Easi <aeasi@marvell.com>
Signed-off-by: default avatarNilesh Javali <njavali@marvell.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 49030003
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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;
+9 −1
Original line number Diff line number Diff line
@@ -687,7 +687,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),