public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] PM: Delete timer before removing wakeup source from list
@ 2025-09-21  4:25 Kaushlendra Kumar
  2025-09-22 17:46 ` Rafael J. Wysocki
  0 siblings, 1 reply; 7+ messages in thread
From: Kaushlendra Kumar @ 2025-09-21  4:25 UTC (permalink / raw)
  To: rafael, pavel, gregkh, dakr; +Cc: linux-pm, Kaushlendra Kumar

Move timer_delete_sync() before list_del_rcu() in wakeup_source_remove()
to ensure proper cleanup ordering. This prevents the timer callback from
executing after the wakeup source has been removed from the events list.

The previous order could allow the timer callback to access the wakeup
source entry after removal but before timer deletion, potentially causing
use-after-free issues or list corruption.

Deleting the timer first ensures that no callbacks can execute during
the wakeup source removal process, providing safer cleanup semantics.

Signed-off-by: Kaushlendra Kumar <kaushlendra.kumar@intel.com>
---
 drivers/base/power/wakeup.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
index d1283ff1080b..ae6ec9f04b61 100644
--- a/drivers/base/power/wakeup.c
+++ b/drivers/base/power/wakeup.c
@@ -189,12 +189,11 @@ static void wakeup_source_remove(struct wakeup_source *ws)
 	if (WARN_ON(!ws))
 		return;
 
+	timer_delete_sync(&ws->timer);
 	raw_spin_lock_irqsave(&events_lock, flags);
 	list_del_rcu(&ws->entry);
 	raw_spin_unlock_irqrestore(&events_lock, flags);
 	synchronize_srcu(&wakeup_srcu);
-
-	timer_delete_sync(&ws->timer);
 	/*
 	 * Clear timer.function to make wakeup_source_not_registered() treat
 	 * this wakeup source as not registered.
-- 
2.34.1


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

end of thread, other threads:[~2025-09-24 11:44 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-21  4:25 [PATCH] PM: Delete timer before removing wakeup source from list Kaushlendra Kumar
2025-09-22 17:46 ` Rafael J. Wysocki
2025-09-23  4:52   ` Kumar, Kaushlendra
2025-09-23 12:31     ` Rafael J. Wysocki
2025-09-24  4:15       ` Kumar, Kaushlendra
2025-09-24 10:40         ` Rafael J. Wysocki
2025-09-24 11:44           ` Kumar, Kaushlendra

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