From: Greg Kroah-Hartman Date: Tue, 5 Dec 2023 02:48:46 +0000 (+0900) Subject: 4.14-stable patches X-Git-Tag: v4.14.332~17 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f57fd05f757bdd81589c0f003bc5a408cc439bbe;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: driver-core-release-all-resources-during-unbind-before-updating-device-links.patch --- diff --git a/queue-4.14/driver-core-release-all-resources-during-unbind-before-updating-device-links.patch b/queue-4.14/driver-core-release-all-resources-during-unbind-before-updating-device-links.patch new file mode 100644 index 00000000000..e4654e18ac5 --- /dev/null +++ b/queue-4.14/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 +@@ -869,8 +869,6 @@ static void __device_release_driver(stru + else if (drv->remove) + drv->remove(dev); + +- device_links_driver_cleanup(dev); +- + devres_release_all(dev); + dma_deconfigure(dev); + dev->driver = NULL; +@@ -879,6 +877,8 @@ static void __device_release_driver(stru + dev->pm_domain->dismiss(dev); + pm_runtime_reinit(dev); + ++ device_links_driver_cleanup(dev); ++ + klist_remove(&dev->p->knode_driver); + device_pm_check_callbacks(dev); + if (dev->bus) diff --git a/queue-4.14/series b/queue-4.14/series index 9ff4c35353f..cd75c8c0a6a 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -27,3 +27,4 @@ btrfs-send-ensure-send_fd-is-writable.patch ipv4-igmp-fix-refcnt-uaf-issue-when-receiving-igmp-q.patch ravb-fix-races-between-ravb_tx_timeout_work-and-net-.patch net-ravb-start-tx-queues-after-hw-initialization-suc.patch +driver-core-release-all-resources-during-unbind-before-updating-device-links.patch