From: Greg Kroah-Hartman Date: Tue, 5 Dec 2023 02:50:05 +0000 (+0900) Subject: 5.4-stable patches X-Git-Tag: v4.14.332~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=12bd34acc170f4e3ca81c46e1cb00c4877486d9f;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: driver-core-release-all-resources-during-unbind-before-updating-device-links.patch --- diff --git a/queue-5.4/driver-core-release-all-resources-during-unbind-before-updating-device-links.patch b/queue-5.4/driver-core-release-all-resources-during-unbind-before-updating-device-links.patch new file mode 100644 index 00000000000..b54c0d77bf6 --- /dev/null +++ b/queue-5.4/driver-core-release-all-resources-during-unbind-before-updating-device-links.patch @@ -0,0 +1,58 @@ +From 947c9e12ddd6866603fd60000c0cca8981687dd3 Mon Sep 17 00:00:00 2001 +From: Saravana Kannan +Date: Tue, 17 Oct 2023 18:38:50 -0700 +Subject: driver core: Release all resources during unbind before updating device links +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Saravana Kannan + +commit 2e84dc37920012b458e9458b19fc4ed33f81bc74 upstream. + +This commit fixes a bug in commit 9ed9895370ae ("driver core: Functional +dependencies tracking support") where the device link status was +incorrectly updated in the driver unbind path before all the device's +resources were released. + +Fixes: 9ed9895370ae ("driver core: Functional dependencies tracking support") +Cc: stable +Reported-by: Uwe Kleine-König +Closes: https://lore.kernel.org/all/20231014161721.f4iqyroddkcyoefo@pengutronix.de/ +Signed-off-by: Saravana Kannan +Cc: Thierry Reding +Cc: Yang Yingliang +Cc: Andy Shevchenko +Cc: Mark Brown +Cc: Matti Vaittinen +Cc: James Clark +Acked-by: "Rafael J. Wysocki" +Tested-by: Uwe Kleine-König +Acked-by: Uwe Kleine-König +Link: https://lore.kernel.org/r/20231018013851.3303928-1-saravanak@google.com +Signed-off-by: Uwe Kleine-König +Signed-off-by: Greg Kroah-Hartman +--- + drivers/base/dd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/base/dd.c ++++ b/drivers/base/dd.c +@@ -1162,8 +1162,6 @@ static void __device_release_driver(stru + else if (drv->remove) + drv->remove(dev); + +- device_links_driver_cleanup(dev); +- + devres_release_all(dev); + arch_teardown_dma_ops(dev); + dev->driver = NULL; +@@ -1173,6 +1171,8 @@ static void __device_release_driver(stru + pm_runtime_reinit(dev); + dev_pm_set_driver_flags(dev, 0); + ++ device_links_driver_cleanup(dev); ++ + klist_remove(&dev->p->knode_driver); + device_pm_check_callbacks(dev); + if (dev->bus) diff --git a/queue-5.4/series b/queue-5.4/series index 5a8feb8092e..8e0a4142c30 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -1,3 +1,4 @@ +driver-core-release-all-resources-during-unbind-before-updating-device-links.patch rdma-irdma-prevent-zero-length-stag-registration.patch pci-keystone-drop-__init-from-ks_pcie_add_pcie_-ep-port.patch afs-make-error-on-cell-lookup-failure-consistent-wit.patch