NAK: [SRU][Jammy][Pull V2] Update Broadcom Emulex FC HBA lpfc driver to 14.2.0.5 for Ubuntu 22.04

Tim Gardner tim.gardner at canonical.com
Thu Oct 6 13:20:11 UTC 2022


On 10/5/22 12:14, Jeff Lane wrote:
> BugLink: https://bugs.launchpad.net/bugs/1988711
> 
> [Impact]
> There are numerous bug fixes included in the more recent version of lpfc that
> Broadcom has asked to pull into Jammy and Kinetic to better support customers
> in the field who are using the GA kernel and cant or wont move to the HWE
> kernels.  These all are limited to the lpfc driver itself, no patches to core
> code are requested. Test kernels were provided to Broadcom which were tested
> and validated.
> 
> These repesent bugs customers have raised to Broadcom as well as bugs Broadcom
> have discovered in their own testing over time.
> 
> Apologies for sending this one originally without this, I had included it in
> other PRs and forgot to add everything before I send this one along.
> 
> [Fix]
> The following changes since commit 6ed20c784348b63d1f826da567a551d25ac4cc7c:
> 
>    UBUNTU: Ubuntu-5.15.0-50.56 (2022-09-20 11:17:12 +0200)
> 
> are available in the Git repository at:
> 
>    git+ssh://bladernr@git.launchpad.net/~bladernr/ubuntu/+source/linux/+git/jammy 1988711-lpfc-to-14.2.0.5
> 
> for you to fetch changes up to de90254c292fe98fd52c773fddf2e2cfa9a36e81:
> 
>    scsi: lpfc: Copyright updates for 14.2.0.5 patches (2022-10-03 13:44:32 -0400)
> 
> ----------------------------------------------------------------
> Bradley Grove (1):
>        scsi: lpfc: Add support for ATTO Fibre Channel devices
> 
> Changcheng Deng (1):
>        scsi: lpfc: Remove unneeded variable
> 
> Hannes Reinecke (5):
>        scsi: lpfc: Kill lpfc_bus_reset_handler()
>        scsi: lpfc: Drop lpfc_no_handler()
>        scsi: lpfc: Use fc_block_rport()
>        scsi: lpfc: Use rport as argument for lpfc_send_taskmgmt()
>        scsi: lpfc: Use rport as argument for lpfc_chk_tgt_mapped()
> 
> James Smart (79):
>        scsi: lpfc: SLI path split: Refactor lpfc_iocbq
>        scsi: lpfc: SLI path split: Refactor fast and slow paths to native SLI4
>        scsi: lpfc: SLI path split: Introduce lpfc_prep_wqe
>        scsi: lpfc: SLI path split: Refactor base ELS paths and the FLOGI path
>        scsi: lpfc: SLI path split: Refactor PLOGI/PRLI/ADISC/LOGO paths
>        scsi: lpfc: SLI path split: Refactor the RSCN/SCR/RDF/EDC/FARPR paths
>        scsi: lpfc: SLI path split: Refactor LS_ACC paths
>        scsi: lpfc: SLI path split: Refactor LS_RJT paths
>        scsi: lpfc: SLI path split: Refactor FDISC paths
>        scsi: lpfc: SLI path split: Refactor VMID paths
>        scsi: lpfc: SLI path split: Refactor misc ELS paths
>        scsi: lpfc: SLI path split: Refactor CT paths
>        scsi: lpfc: SLI path split: Refactor SCSI paths
>        scsi: lpfc: SLI path split: Refactor Abort paths
>        scsi: lpfc: SLI path split: Refactor BSG paths
>        scsi: lpfc: Update lpfc version to 14.2.0.0
>        scsi: lpfc: Copyright updates for 14.2.0.0 patches
>        scsi: lpfc: Improve PCI EEH Error and Recovery Handling
>        scsi: lpfc: Fix unload hang after back to back PCI EEH faults
>        scsi: lpfc: Update lpfc version to 14.2.0.1
>        scsi: lpfc: Fix broken SLI4 abort path
>        scsi: lpfc: Fix locking for lpfc_sli_iocbq_lookup()
>        scsi: lpfc: Tweak message log categories for ELS/FDMI/NVMe rescan
>        scsi: lpfc: Fix diagnostic fw logging after a function reset
>        scsi: lpfc: Zero SLI4 fcp_cmnd buffer's fcpCntl0 field
>        scsi: lpfc: Requeue SCSI I/O to upper layer when fw reports link down
>        scsi: lpfc: Clear fabric topology flag before initiating a new FLOGI
>        scsi: lpfc: Fix null pointer dereference after failing to issue FLOGI and PLOGI
>        scsi: lpfc: Protect memory leak for NPIV ports sending PLOGI_RJT
>        scsi: lpfc: Update fc_prli_sent outstanding only after guaranteed IOCB submit
>        scsi: lpfc: Transition to NPR state upon LOGO cmpl if link down or aborted
>        scsi: lpfc: Remove unnecessary NULL pointer assignment for ELS_RDF path
>        scsi: lpfc: Move MI module parameter check to handle dynamic disable
>        scsi: lpfc: Correct CRC32 calculation for congestion stats
>        scsi: lpfc: Revise FDMI reporting of supported port speed for trunk groups
>        scsi: lpfc: Remove false FDMI NVMe FC-4 support for NPIV ports
>        scsi: lpfc: Register for Application Services FC-4 type in Fabric topology
>        scsi: lpfc: Introduce FC_RSCN_MEMENTO flag for tracking post RSCN completion
>        scsi: lpfc: Fix field overload in lpfc_iocbq data structure
>        scsi: lpfc: Refactor cleanup of mailbox commands
>        scsi: lpfc: Update stat accounting for READ_STATUS mbox command
>        scsi: lpfc: Expand setting ELS_ID field in ELS_REQUEST64_WQE
>        scsi: lpfc: Update lpfc version to 14.2.0.2
>        scsi: lpfc: Copyright updates for 14.2.0.2 patches
>        scsi: lpfc: Remove unnecessary null ndlp check in lpfc_sli_prep_wqe()
>        scsi: lpfc: Fix additional reference counting in lpfc_bsg_rport_els()
>        scsi: lpfc: Remove redundant lpfc_sli_prep_wqe() call
>        scsi: lpfc: Fix split code for FLOGI on FCoE
>        scsi: lpfc: Correct BDE DMA address assignment for GEN_REQ_WQE
>        scsi: lpfc: Fix element offset in __lpfc_sli_release_iocbq_s4()
>        scsi: lpfc: Fill in missing ndlp kref puts in error paths
>        scsi: lpfc: Fix ndlp put following a LOGO completion
>        scsi: lpfc: Inhibit aborts if external loopback plug is inserted
>        scsi: lpfc: Fix dmabuf ptr assignment in lpfc_ct_reject_event()
>        scsi: lpfc: Use list_for_each_entry_safe() in rscn_recovery_check()
>        scsi: lpfc: Decrement outstanding gidft_inp counter if lpfc_err_lost_link()
>        scsi: lpfc: Change VMID registration to be based on fabric parameters
>        scsi: lpfc: Rework FDMI initialization after link up
>        scsi: lpfc: Use sg_dma_address() and sg_dma_len() macros for NVMe I/O
>        scsi: lpfc: Update lpfc version to 14.2.0.3
>        scsi: lpfc: Commonize VMID code location
>        scsi: lpfc: Rework lpfc_vmid_get_appid() to be protocol independent
>        scsi: lpfc: Correct BDE type for XMIT_SEQ64_WQE in lpfc_ct_reject_event()
>        scsi: lpfc: Resolve some cleanup issues following abort path refactoring
>        scsi: lpfc: Resolve some cleanup issues following SLI path refactoring
>        scsi: lpfc: Address NULL pointer dereference after starget_to_rport()
>        scsi: lpfc: Resolve NULL ptr dereference after an ELS LOGO is aborted
>        scsi: lpfc: Add more logging of cmd and cqe information for aborted NVMe cmds
>        scsi: lpfc: Update lpfc version to 14.2.0.4
>        scsi: lpfc: Fix uninitialized cqe field in lpfc_nvme_cancel_iocb()
>        scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user input
>        scsi: lpfc: Set PU field when providing D_ID in XMIT_ELS_RSP64_CX iocb
>        scsi: lpfc: Remove extra atomic_inc on cmd_pending in queuecommand after VMID
>        scsi: lpfc: Fix possible memory leak when failing to issue CMF WQE
>        scsi: lpfc: Fix lost NVMe paths during LIF bounce stress test
>        scsi: lpfc: Revert RSCN_MEMENTO workaround for misbehaved configuration
>        scsi: lpfc: Refactor lpfc_nvmet_prep_abort_wqe() into lpfc_sli_prep_abort_xri()
>        scsi: lpfc: Update lpfc version to 14.2.0.5
>        scsi: lpfc: Copyright updates for 14.2.0.5 patches
> 
> Julia Lawall (2):
>        scsi: lpfc: Fix typos in comments
>        scsi: lpfc: Use kcalloc()
> 
> Minghao Chi (CGEL ZTE) (1):
>        scsi: lpfc: Remove redundant flush_workqueue() call
> 
>   drivers/scsi/lpfc/Makefile         |    2 +-
>   drivers/scsi/lpfc/lpfc.h           |  110 +-
>   drivers/scsi/lpfc/lpfc_attr.c      |   37 +-
>   drivers/scsi/lpfc/lpfc_bsg.c       |  418 +++--
>   drivers/scsi/lpfc/lpfc_bsg.h       |    2 +-
>   drivers/scsi/lpfc/lpfc_crtn.h      |   37 +-
>   drivers/scsi/lpfc/lpfc_ct.c        |  696 ++++----
>   drivers/scsi/lpfc/lpfc_debugfs.c   |   31 +-
>   drivers/scsi/lpfc/lpfc_els.c       | 2165 ++++++++++++++-----------
>   drivers/scsi/lpfc/lpfc_hbadisc.c   |  315 ++--
>   drivers/scsi/lpfc/lpfc_hw.h        |  111 +-
>   drivers/scsi/lpfc/lpfc_hw4.h       |   53 +-
>   drivers/scsi/lpfc/lpfc_ids.h       |   32 +-
>   drivers/scsi/lpfc/lpfc_init.c      |  342 ++--
>   drivers/scsi/lpfc/lpfc_logmsg.h    |    2 +-
>   drivers/scsi/lpfc/lpfc_mbox.c      |  205 ++-
>   drivers/scsi/lpfc/lpfc_nportdisc.c |  183 ++-
>   drivers/scsi/lpfc/lpfc_nvme.c      |  154 +-
>   drivers/scsi/lpfc/lpfc_nvme.h      |    8 +-
>   drivers/scsi/lpfc/lpfc_nvmet.c     |  206 +--
>   drivers/scsi/lpfc/lpfc_scsi.c      |  871 +++-------
>   drivers/scsi/lpfc/lpfc_sli.c       | 3073 +++++++++++++++++-------------------
>   drivers/scsi/lpfc/lpfc_sli.h       |   59 +-
>   drivers/scsi/lpfc/lpfc_sli4.h      |    2 +-
>   drivers/scsi/lpfc/lpfc_version.h   |    6 +-
>   drivers/scsi/lpfc/lpfc_vmid.c      |  288 ++++
>   drivers/scsi/lpfc/lpfc_vport.c     |   31 +-
>   27 files changed, 5035 insertions(+), 4404 deletions(-)
>   create mode 100644 drivers/scsi/lpfc/lpfc_vmid.c
> 

Hi Jeff,

Now that Stefan has applied a zillion stable patches, your pull request 
has some conflicts. Please rebase on top of jammy/linux master-next. I 
noticed issues with ('scsi: lpfc: SLI path split: Refactor SCSI paths'), 
('scsi: lpfc: Remove unneeded variable'), and ('scsi: lpfc: Resolve NULL 
ptr dereference after an ELS LOGO is aborted'). There are also a half 
dozen duplicate patches.

Since this is a wholesale update to the lpfc driver, the simplest way to 
resolve these conflicts might be to revert all previous stable updates 
to lpfc before applying the pure upstream commits. This method generally 
works if there are no kernel version specific external dependencies. I 
noted that a couple of the stable backports differ significantly from 
their upstream counterparts, but didn't really dig into the why of it.

rtg
-- 
-----------
Tim Gardner
Canonical, Inc



More information about the kernel-team mailing list