** Description changed: [IMPACT] This upstream commit: - 863fbae929c7a5b64e96b8a3ffb34a29eefb9f8f + 863fbae929c7a5b64e96b8a3ffb34a29eefb9f8f nvme_fc: add module to ops template to allow module references - was pulled into Focal as part of this bug: - https://bugs.launchpad.net/bugs/1860125 + was pulled into Focal as part of this bug: + https://bugs.launchpad.net/bugs/1860125 - and this commit into Focal: + and this commit into Focal: a7441301b20dc8a7772972a092968bb353b7a642 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, and 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 in - Focal. + + 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: a7441301b20dc8a7772972a092968bb353b7a642 nvme_fc: add module to ops template to allow module references BugLink: https://bugs.launchpad.net/bugs/1860125 [ Upstream commit 863fbae929c7a5b64e96b8a3ffb34a29eefb9f8f ] 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 <hmadh...@marvell.com> Reviewed-by: Christoph Hellwig <h...@lst.de> Signed-off-by: James Smart <jsmart2...@gmail.com> Signed-off-by: Keith Busch <kbu...@kernel.org> Signed-off-by: Sasha Levin <sas...@kernel.org> Signed-off-by: Paolo Pisati <paolo.pis...@canonical.com> An updated tree with the commit reverted can be found here: https://code.launchpad.net/~bladernr/ubuntu/+source/linux/+git/focal/+ref/1869947-revert-lpfc-patch [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-5.4-5.4.0-13.16 onwards and does not affect older kernels.
-- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1869947 Title: Revert "nvme_fc: add module to ops template to allow module references" Status in linux package in Ubuntu: In Progress Bug description: [IMPACT] This upstream commit: 863fbae929c7a5b64e96b8a3ffb34a29eefb9f8f nvme_fc: add module to ops template to allow module references was pulled into Focal as part of this bug: https://bugs.launchpad.net/bugs/1860125 and this commit into Focal: a7441301b20dc8a7772972a092968bb353b7a642 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: a7441301b20dc8a7772972a092968bb353b7a642 nvme_fc: add module to ops template to allow module references BugLink: https://bugs.launchpad.net/bugs/1860125 [ Upstream commit 863fbae929c7a5b64e96b8a3ffb34a29eefb9f8f ] 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 <hmadh...@marvell.com> Reviewed-by: Christoph Hellwig <h...@lst.de> Signed-off-by: James Smart <jsmart2...@gmail.com> Signed-off-by: Keith Busch <kbu...@kernel.org> Signed-off-by: Sasha Levin <sas...@kernel.org> Signed-off-by: Paolo Pisati <paolo.pis...@canonical.com> An updated tree with the commit reverted can be found here: https://code.launchpad.net/~bladernr/ubuntu/+source/linux/+git/focal/+ref/1869947-revert-lpfc-patch [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-5.4-5.4.0-13.16 onwards and does not affect older kernels. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1869947/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp