drivers/base/power/wakeirq.c | 6 ------ 1 file changed, 6 deletions(-)
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
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)
> {
> --
© 2016 - 2026 Red Hat, Inc.