Revert "nvme_fc: add module to ops template to allow module references"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
High
|
Jeff Lane |
Bug Description
[IMPACT]
This upstream commit:
863fbae929c7a5b
nvme_fc: add module to ops template to allow module references
was pulled into Focal as part of this bug:
https:/
and this commit into Focal:
a7441301b20dc8a
This patch was added to prevent the unloading of lpfc driver when doing NVMe BFS booting. Broadcom has identified that this patch introduces a bug that prevents unloading of lpfc driver in the non-BFS case as well.
Because of this, they have asked that we revert this patch and remove it from our kernel. Additionally, Broadcome have also said that they are working on a patch upstream to revert this as well. As it may not land upstream in time to meet kernel freeze for Focal, I'm providing a patch
to revert this commit directly.
[FIXES]
To resolve, revert the following commit ID in the Focal Tree:
a7441301b20dc8a
nvme_fc: add module to ops template to allow module references
BugLink: https:/
[ Upstream commit 863fbae929c7a5b
In nvme-fc: it's possible to have connected active controllers
and as no references are taken on the LLDD, the LLDD can be
unloaded. The controller would enter a reconnect state and as
long as the LLDD resumed within the reconnect timeout, the
controller would resume. But if a namespace on the controller
is the root device, allowing the driver to unload can be problematic.
To reload the driver, it may require new io to the boot device,
and as it's no longer connected we get into a catch-22 that
eventually fails, and the system locks up.
Fix this issue by taking a module reference for every connected
controller (which is what the core layer did to the transport
module). Reference is cleared when the controller is removed.
Acked-by: Himanshu Madhani <email address hidden>
Reviewed-by: Christoph Hellwig <email address hidden>
Signed-off-by: James Smart <email address hidden>
Signed-off-by: Keith Busch <email address hidden>
Signed-off-by: Sasha Levin <email address hidden>
Signed-off-by: Paolo Pisati <email address hidden>
An updated tree with the commit reverted can be found here:
https:/
[REGRESSION RISK]
Regression risk is low as this is a new patch introduced upstream and synced into a development release. The patch only exists in our tree from Ubuntu-
CVE References
Changed in linux (Ubuntu): | |
status: | New → In Progress |
importance: | Undecided → High |
assignee: | nobody → Jeff Lane (bladernr) |
description: | updated |
description: | updated |
summary: |
- revert patch that introduces bug that prevents lpfc driver unloading + nvme_fc patch prevents unloading of lpfc module in both BFS and non-BFS + scenarios |
description: | updated |
summary: |
- nvme_fc patch prevents unloading of lpfc module in both BFS and non-BFS + nvme_fc patch prevents unloading lpfs module in both BFS and non-BFS scenarios |
summary: |
- nvme_fc patch prevents unloading lpfs module in both BFS and non-BFS - scenarios + Revert "nvme_fc: add module to ops template to allow module references" |
description: | updated |
Changed in linux (Ubuntu): | |
status: | In Progress → Fix Committed |
This bug was fixed in the package linux - 5.4.0-24.28
---------------
linux (5.4.0-24.28) focal; urgency=medium
* focal/linux: 5.4.0-24.28 -proposed tracker (LP: #1871939)
* getitimer returns it_value=0 erroneously (LP: #1349028) TRACKING_ FORCE policy should be unset
- [Config] CONTEXT_
* 12d1:1038 Dual-Role OTG device on non-HNP port - unable to enumerate USB
device on port 1 (LP: #1047527)
- [Config] USB_OTG_FSM policy not needed
* Add DCPD backlight support for HP CML system (LP: #1871589)
- SAUCE: drm/i915: Force DPCD backlight mode for HP CML 2020 system
* Backlight brightness cannot be adjusted using keys (LP: #1860303)
- SAUCE drm/i915: Force DPCD backlight mode for HP Spectre x360 Convertible
13t-aw100
* CVE-2020-11494
- slcan: Don't transmit uninitialized stack data in padding
* Ubuntu Kernel Support for OpenPOWER NV Secure & Trusted Boot (LP: #1866909) buffer_ measurement( ) generic
- powerpc: Detect the secure boot mode of the system
- powerpc/ima: Add support to initialize ima policy rules
- powerpc: Detect the trusted boot state of the system
- powerpc/ima: Define trusted boot policy
- ima: Make process_
- certs: Add wrapper function to check blacklisted binary hash
- ima: Check against blacklisted hashes for files with modsig
- powerpc/ima: Update ima arch policy to check for blacklist
- powerpc/ima: Indicate kernel modules appended signatures are enforced
- powerpc/powernv: Add OPAL API interface to access secure variable
- powerpc: expose secure variables to userspace via sysfs
- x86/efi: move common keyring handler functions to new file
- powerpc: Load firmware trusted keys/hashes into kernel keyring
- x86/efi: remove unused variables
* [roce-0227]sync mainline kernel 5.6rc3 roce patchset into ubuntu HWE kernel
branch (LP: #1864950)
- RDMA/hns: Cleanups of magic numbers
- RDMA/hns: Optimize eqe buffer allocation flow
- RDMA/hns: Add the workqueue framework for flush cqe handler
- RDMA/hns: Delayed flush cqe process with workqueue
- RDMA/hns: fix spelling mistake: "attatch" -> "attach"
- RDMA/hns: Initialize all fields of doorbells to zero
- RDMA/hns: Treat revision HIP08_A as a special case
- RDMA/hns: Use flush framework for the case in aeq
- RDMA/hns: Stop doorbell update while qp state error
- RDMA/hns: Optimize qp destroy flow
- RDMA/hns: Optimize qp context create and destroy flow
- RDMA/hns: Optimize qp number assign flow
- RDMA/hns: Optimize qp buffer allocation flow
- RDMA/hns: Optimize qp param setup flow
- RDMA/hns: Optimize kernel qp wrid allocation flow
- RDMA/hns: Optimize qp doorbell allocation flow
- RDMA/hns: Check if depth of qp is 0 before configure
* [hns3-0316]sync mainline kernel 5.6rc4 hns3 patchset into ubuntu HWE kernel
branch (LP: #1867586)
- net: hns3: modify an unsuitable print when setting unknown duplex to fibre
- net: hns3: add enabled TC numbers and DWRR weight info in debugfs
- net: hns3: add support for dump MAC ID and loopback status in debugfs
- net: hns3: add missing help info for QS shaper...