[PATCH] PM: sleep: wakeirq: remove outdated comments

Wang Jiayue posted 1 patch 3 days, 6 hours ago
drivers/base/power/wakeirq.c | 6 ------
1 file changed, 6 deletions(-)
[PATCH] PM: sleep: wakeirq: remove outdated comments
Posted by Wang Jiayue 3 days, 6 hours ago
Remove the stale documentations. The comments claiming that
dev_pm_*wake_irq*() helpers must be called with dev->power.lock held and
only from rpm_suspend/resume paths are no longer correct, since
pm_runtime_force_suspend/resume() call them lockless.

Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
Closes: https://lore.kernel.org/all/CAJZ5v0jN9fU9NdWqc-+F5hiSEP4JkR=_qcdGzzHtk1i5tvCDbQ@mail.gmail.com/
Fixes: c46a0d5ae4f9 ("PM: runtime: Extend support for wakeirq for force_suspend|resume")
Signed-off-by: Wang Jiayue <akaieurus@gmail.com>
---
 drivers/base/power/wakeirq.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/base/power/wakeirq.c b/drivers/base/power/wakeirq.c
index 8aa28c08b289..4f57058f2148 100644
--- a/drivers/base/power/wakeirq.c
+++ b/drivers/base/power/wakeirq.c
@@ -269,9 +269,6 @@ EXPORT_SYMBOL_GPL(dev_pm_set_dedicated_wake_irq_reverse);
  * starts in RPM_SUSPENDED state, and the first pm_runtime_get() would
  * otherwise try to disable already disabled wakeirq. The wake-up interrupt
  * starts disabled with IRQ_NOAUTOEN set.
- *
- * Should be only called from rpm_suspend() and rpm_resume() path.
- * Caller must hold &dev->power.lock to change wirq->status
  */
 void dev_pm_enable_wake_irq_check(struct device *dev,
 				  bool can_change_status)
@@ -303,7 +300,6 @@ void dev_pm_enable_wake_irq_check(struct device *dev,
  * @cond_disable: if set, also check WAKE_IRQ_DEDICATED_REVERSE
  *
  * Disables wake-up interrupt conditionally based on status.
- * Should be only called from rpm_suspend() and rpm_resume() path.
  */
 void dev_pm_disable_wake_irq_check(struct device *dev, bool cond_disable)
 {
@@ -328,8 +324,6 @@ void dev_pm_disable_wake_irq_check(struct device *dev, bool cond_disable)
  * Enable wake IRQ conditionally based on status, mainly used if want to
  * enable wake IRQ after running ->runtime_suspend() which depends on
  * WAKE_IRQ_DEDICATED_REVERSE.
- *
- * Should be only called from rpm_suspend() path.
  */
 void dev_pm_enable_wake_irq_complete(struct device *dev)
 {
-- 
2.34.1
Re: [PATCH] PM: sleep: wakeirq: remove outdated comments
Posted by Rafael J. Wysocki 2 days, 23 hours ago
On Wed, Feb 4, 2026 at 10:04 AM Wang Jiayue <akaieurus@gmail.com> wrote:
>
> Remove the stale documentations. The comments claiming that
> dev_pm_*wake_irq*() helpers must be called with dev->power.lock held and
> only from rpm_suspend/resume paths are no longer correct, since
> pm_runtime_force_suspend/resume() call them lockless.

Well, pm_runtime_force_suspend/resume() are kind of special.

> Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
> Closes: https://lore.kernel.org/all/CAJZ5v0jN9fU9NdWqc-+F5hiSEP4JkR=_qcdGzzHtk1i5tvCDbQ@mail.gmail.com/
> Fixes: c46a0d5ae4f9 ("PM: runtime: Extend support for wakeirq for force_suspend|resume")
> Signed-off-by: Wang Jiayue <akaieurus@gmail.com>
> ---
>  drivers/base/power/wakeirq.c | 6 ------
>  1 file changed, 6 deletions(-)
>
> diff --git a/drivers/base/power/wakeirq.c b/drivers/base/power/wakeirq.c
> index 8aa28c08b289..4f57058f2148 100644
> --- a/drivers/base/power/wakeirq.c
> +++ b/drivers/base/power/wakeirq.c
> @@ -269,9 +269,6 @@ EXPORT_SYMBOL_GPL(dev_pm_set_dedicated_wake_irq_reverse);
>   * starts in RPM_SUSPENDED state, and the first pm_runtime_get() would
>   * otherwise try to disable already disabled wakeirq. The wake-up interrupt
>   * starts disabled with IRQ_NOAUTOEN set.
> - *
> - * Should be only called from rpm_suspend() and rpm_resume() path.

I think that the removed line is still applicable to some extent.

It would be better to rephrase it to also cover the
pm_runtime_force_suspend/resume() case.

This also applies to the other analogous changes below.

> - * Caller must hold &dev->power.lock to change wirq->status

This one could also be rephrased to say that either the lock needs to
be held or runtime PM needs to be disabled before calling this
function.

>   */
>  void dev_pm_enable_wake_irq_check(struct device *dev,
>                                   bool can_change_status)
> @@ -303,7 +300,6 @@ void dev_pm_enable_wake_irq_check(struct device *dev,
>   * @cond_disable: if set, also check WAKE_IRQ_DEDICATED_REVERSE
>   *
>   * Disables wake-up interrupt conditionally based on status.
> - * Should be only called from rpm_suspend() and rpm_resume() path.
>   */
>  void dev_pm_disable_wake_irq_check(struct device *dev, bool cond_disable)
>  {
> @@ -328,8 +324,6 @@ void dev_pm_disable_wake_irq_check(struct device *dev, bool cond_disable)
>   * Enable wake IRQ conditionally based on status, mainly used if want to
>   * enable wake IRQ after running ->runtime_suspend() which depends on
>   * WAKE_IRQ_DEDICATED_REVERSE.
> - *
> - * Should be only called from rpm_suspend() path.
>   */
>  void dev_pm_enable_wake_irq_complete(struct device *dev)
>  {
> --