The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [char-misc-next v2] mei: bus: fix device leak
@ 2025-06-24 11:05 Alexander Usyskin
  2025-06-24 11:35 ` Greg Kroah-Hartman
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Alexander Usyskin @ 2025-06-24 11:05 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: Reuven Abliyev, Alexander Usyskin, linux-kernel

The bus rescan function creates bus devices for all clients.
The fixup routine is executed on all devices, unneeded
devices are removed and fully initialized once set
is_added flag to 1.

If link to firmware is reset right after all devices are
initialized, but before fixup is executed, the rescan tries
to remove devices.
The is_added flag is not set and the mei_cl_bus_dev_destroy
returns prematurely.
Allow to clean up device when is_added flag is unset to
account for above scenario.

Fixes: 6009595a66e4 ("mei: bus: link client devices instead of host clients")
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
---
 drivers/misc/mei/bus.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c
index 67176caf5416..f2e5d550c6b4 100644
--- a/drivers/misc/mei/bus.c
+++ b/drivers/misc/mei/bus.c
@@ -1430,17 +1430,14 @@ static void mei_cl_bus_dev_stop(struct mei_cl_device *cldev)
  */
 static void mei_cl_bus_dev_destroy(struct mei_cl_device *cldev)
 {
-
 	WARN_ON(!mutex_is_locked(&cldev->bus->cl_bus_lock));
 
-	if (!cldev->is_added)
-		return;
-
-	device_del(&cldev->dev);
+	if (cldev->is_added) {
+		device_del(&cldev->dev);
+		cldev->is_added = 0;
+	}
 
 	list_del_init(&cldev->bus_list);
-
-	cldev->is_added = 0;
 	put_device(&cldev->dev);
 }
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-07-07  8:03 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-24 11:05 [char-misc-next v2] mei: bus: fix device leak Alexander Usyskin
2025-06-24 11:35 ` Greg Kroah-Hartman
2025-06-28 12:10 ` Greg Kroah-Hartman
2025-06-30 10:52   ` Usyskin, Alexander
2025-06-30 11:18     ` Greg Kroah-Hartman
2025-06-30 11:27       ` Usyskin, Alexander
2025-06-30 12:54         ` Greg Kroah-Hartman
2025-07-07  7:08           ` Usyskin, Alexander
2025-07-07  7:46             ` Greg Kroah-Hartman
2025-07-07  8:02               ` Usyskin, Alexander
2025-06-28 12:10 ` Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox