Commit 34a84c41 authored by Martin K. Petersen's avatar Martin K. Petersen
Browse files

Merge patch series "Update lpfc to revision 14.4.0.8"

Justin Tee <justintee8345@gmail.com> says:

Update lpfc to revision 14.4.0.8

This patch set contains fixes related to diagnostic logging, smatch, and
ndlp ptr referencing issues.

The patches were cut against Martin's 6.14/scsi-queue tree.

Link: https://lore.kernel.org/r/20250131000524.163662-1-justintee8345@gmail.com


Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parents 796a8aa8 ef12deb6
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
/*******************************************************************
 * This file is part of the Emulex Linux Device Driver for         *
 * Fibre Channel Host Bus Adapters.                                *
 * Copyright (C) 2017-2024 Broadcom. All Rights Reserved. The term *
 * Copyright (C) 2017-2025 Broadcom. All Rights Reserved. The term *
 * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.     *
 * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
 * EMULEX and SLI are trademarks of Emulex.                        *
@@ -9569,18 +9569,16 @@ lpfc_els_flush_cmd(struct lpfc_vport *vport)
	mbx_tmo_err = test_bit(MBX_TMO_ERR, &phba->bit_flags);
	/* First we need to issue aborts to outstanding cmds on txcmpl */
	list_for_each_entry_safe(piocb, tmp_iocb, &pring->txcmplq, list) {
		if (piocb->vport != vport)
			continue;

		lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
				 "2243 iotag = 0x%x cmd_flag = 0x%x "
				 "ulp_command = 0x%x this_vport %x "
				 "sli_flag = 0x%x\n",
				 "ulp_command = 0x%x sli_flag = 0x%x\n",
				 piocb->iotag, piocb->cmd_flag,
				 get_job_cmnd(phba, piocb),
				 (piocb->vport == vport),
				 phba->sli.sli_flag);

		if (piocb->vport != vport)
			continue;

		if ((phba->sli.sli_flag & LPFC_SLI_ACTIVE) && !mbx_tmo_err) {
			if (piocb->cmd_flag & LPFC_IO_LIBDFC)
				continue;
+22 −9
Original line number Diff line number Diff line
/*******************************************************************
 * This file is part of the Emulex Linux Device Driver for         *
 * Fibre Channel Host Bus Adapters.                                *
 * Copyright (C) 2017-2024 Broadcom. All Rights Reserved. The term *
 * Copyright (C) 2017-2025 Broadcom. All Rights Reserved. The term *
 * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.     *
 * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
 * EMULEX and SLI are trademarks of Emulex.                        *
@@ -228,10 +228,16 @@ lpfc_dev_loss_tmo_callbk(struct fc_rport *rport)
	if (ndlp->nlp_state == NLP_STE_MAPPED_NODE)
		return;

	/* check for recovered fabric node */
	if (ndlp->nlp_state == NLP_STE_UNMAPPED_NODE &&
	    ndlp->nlp_DID == Fabric_DID)
	/* Ignore callback for a mismatched (stale) rport */
	if (ndlp->rport != rport) {
		lpfc_vlog_msg(vport, KERN_WARNING, LOG_NODE,
			      "6788 fc rport mismatch: d_id x%06x ndlp x%px "
			      "fc rport x%px node rport x%px state x%x "
			      "refcnt %u\n",
			      ndlp->nlp_DID, ndlp, rport, ndlp->rport,
			      ndlp->nlp_state, kref_read(&ndlp->kref));
		return;
	}

	if (rport->port_name != wwn_to_u64(ndlp->nlp_portname.u.wwn))
		lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
@@ -5564,6 +5570,7 @@ static struct lpfc_nodelist *
__lpfc_findnode_did(struct lpfc_vport *vport, uint32_t did)
{
	struct lpfc_nodelist *ndlp;
	struct lpfc_nodelist *np = NULL;
	uint32_t data1;

	list_for_each_entry(ndlp, &vport->fc_nodes, nlp_listp) {
@@ -5578,14 +5585,20 @@ __lpfc_findnode_did(struct lpfc_vport *vport, uint32_t did)
					 ndlp, ndlp->nlp_DID,
					 ndlp->nlp_flag, data1, ndlp->nlp_rpi,
					 ndlp->active_rrqs_xri_bitmap);

			/* Check for new or potentially stale node */
			if (ndlp->nlp_state != NLP_STE_UNUSED_NODE)
				return ndlp;
			np = ndlp;
		}
	}

	if (!np)
		/* FIND node did <did> NOT FOUND */
		lpfc_printf_vlog(vport, KERN_INFO, LOG_NODE,
				 "0932 FIND node did x%x NOT FOUND.\n", did);
	return NULL;

	return np;
}

struct lpfc_nodelist *
+3 −1
Original line number Diff line number Diff line
/*******************************************************************
 * This file is part of the Emulex Linux Device Driver for         *
 * Fibre Channel Host Bus Adapters.                                *
 * Copyright (C) 2017-2024 Broadcom. All Rights Reserved. The term *
 * Copyright (C) 2017-2025 Broadcom. All Rights Reserved. The term *
 * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.  *
 * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
 * EMULEX and SLI are trademarks of Emulex.                        *
@@ -13170,6 +13170,7 @@ lpfc_sli4_enable_msi(struct lpfc_hba *phba)
	eqhdl = lpfc_get_eq_hdl(0);
	rc = pci_irq_vector(phba->pcidev, 0);
	if (rc < 0) {
		free_irq(phba->pcidev->irq, phba);
		pci_free_irq_vectors(phba->pcidev);
		lpfc_printf_log(phba, KERN_WARNING, LOG_INIT,
				"0496 MSI pci_irq_vec failed (%d)\n", rc);
@@ -13250,6 +13251,7 @@ lpfc_sli4_enable_intr(struct lpfc_hba *phba, uint32_t cfg_mode)
			eqhdl = lpfc_get_eq_hdl(0);
			retval = pci_irq_vector(phba->pcidev, 0);
			if (retval < 0) {
				free_irq(phba->pcidev->irq, phba);
				lpfc_printf_log(phba, KERN_WARNING, LOG_INIT,
					"0502 INTR pci_irq_vec failed (%d)\n",
					 retval);
+3 −3
Original line number Diff line number Diff line
/*******************************************************************
 * This file is part of the Emulex Linux Device Driver for         *
 * Fibre Channel Host Bus Adapters.                                *
 * Copyright (C) 2017-2024 Broadcom. All Rights Reserved. The term *
 * Copyright (C) 2017-2025 Broadcom. All Rights Reserved. The term *
 * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.     *
 * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
 * EMULEX and SLI are trademarks of Emulex.                        *
@@ -20,7 +20,7 @@
 * included with this package.                                     *
 *******************************************************************/

#define LPFC_DRIVER_VERSION "14.4.0.7"
#define LPFC_DRIVER_VERSION "14.4.0.8"
#define LPFC_DRIVER_NAME		"lpfc"

/* Used for SLI 2/3 */
@@ -32,6 +32,6 @@

#define LPFC_MODULE_DESC "Emulex LightPulse Fibre Channel SCSI driver " \
		LPFC_DRIVER_VERSION
#define LPFC_COPYRIGHT "Copyright (C) 2017-2024 Broadcom. All Rights " \
#define LPFC_COPYRIGHT "Copyright (C) 2017-2025 Broadcom. All Rights " \
		"Reserved. The term \"Broadcom\" refers to Broadcom Inc. " \
		"and/or its subsidiaries."