[PATCH v2] PM: runtime: Drop status check from pm_runtime_force_resume()

From: Rafael J. Wysocki
Date: Thu Feb 27 2025 - 05:56:36 EST


From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

Since pm_runtime_force_resume() requires pm_runtime_force_suspend() to
be called before it on the same device, the runtime PM status of the
device is RPM_SUSPENDED when it is called unless the device's runtime
PM status is changed somewhere else in the meantime.

However, even if that happens, the power.needs_force_resume
check is still required to pass and that flag is only set by
pm_runtime_force_suspend() once and it is cleared at the end of
pm_runtime_force_resume(), so it cannot be taken into account
twice in a row.

According to the above, the pm_runtime_status_suspended(dev) check in
pm_runtime_force_resume() is redundant, so drop it.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
---

The previous version of this patch is here:

https://lore.kernel.org/linux-pm/6038511.MhkbZ0Pkbq@xxxxxxxxxxxxx/

v1 -> v2: Minor changelog edits.

---
drivers/base/power/runtime.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/base/power/runtime.c
+++ b/drivers/base/power/runtime.c
@@ -1982,7 +1982,7 @@
int (*callback)(struct device *);
int ret = 0;

- if (!pm_runtime_status_suspended(dev) || !dev->power.needs_force_resume)
+ if (!dev->power.needs_force_resume)
goto out;

/*