From: Kaushlendra Kumar <kaushlendra.kumar@intel.com>
To: rafael@kernel.org, pavel@kernel.org, gregkh@linuxfoundation.org,
dakr@kernel.org
Cc: linux-pm@vger.kernel.org,
Kaushlendra Kumar <kaushlendra.kumar@intel.com>
Subject: [PATCH v3] PM: Delete timer before removing wakeup source from list
Date: Mon, 27 Oct 2025 10:11:27 +0530 [thread overview]
Message-ID: <20251027044127.2456365-1-kaushlendra.kumar@intel.com> (raw)
Replace timer_delete_sync() with timer_shutdown_sync() and move
it before list_del_rcu() in wakeup_source_remove() to improve the
cleanup ordering and code clarity. This change ensures that the
timer is stopped before removing the wakeup source from the
events list, providing a more logical cleanup sequence.
While the current ordering is functionally correct, stopping the timer
first makes the cleanup flow more intuitive and follows the general
pattern of disabling active components before removing data structures.
Signed-off-by: Kaushlendra Kumar <kaushlendra.kumar@intel.com>
---
Changes in v3:
- Use timer_shutdown_sync() instead of timer_delete_sync() to prevent
timer re-arming as per review feedback
- Remove timer.function clearing as timer_shutdown_sync() handles it
Changes in v2:
- Reframed as cleanup/improvement rather than fix
drivers/base/power/wakeup.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
index d1283ff1080b..ab3eee23a52d 100644
--- a/drivers/base/power/wakeup.c
+++ b/drivers/base/power/wakeup.c
@@ -189,17 +189,11 @@ static void wakeup_source_remove(struct wakeup_source *ws)
if (WARN_ON(!ws))
return;
+ timer_shutdown_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.
- */
- ws->timer.function = NULL;
}
/**
--
2.34.1
next reply other threads:[~2025-10-27 4:43 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-27 4:41 Kaushlendra Kumar [this message]
2025-11-07 20:46 ` [PATCH v3] PM: Delete timer before removing wakeup source from list Rafael J. Wysocki
2025-11-08 7:17 ` Kumar, Kaushlendra
2025-11-08 11:09 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251027044127.2456365-1-kaushlendra.kumar@intel.com \
--to=kaushlendra.kumar@intel.com \
--cc=dakr@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-pm@vger.kernel.org \
--cc=pavel@kernel.org \
--cc=rafael@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).