drivers/base/power/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
The mask operation link->flags | DL_FLAG_PM_RUNTIME is always true which
is incorrect. The mask operation should be using the bit-wise &
operator. Fix this.
Fixes: bca84a7b93fd ("PM: sleep: Use DPM_FLAG_SMART_SUSPEND conditionally")
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
drivers/base/power/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index ad50018b8047..ac2a197c1234 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -1836,7 +1836,7 @@ static bool device_prepare_smart_suspend(struct device *dev)
idx = device_links_read_lock();
list_for_each_entry_rcu_locked(link, &dev->links.suppliers, c_node) {
- if (!(link->flags | DL_FLAG_PM_RUNTIME))
+ if (!(link->flags & DL_FLAG_PM_RUNTIME))
continue;
if (!dev_pm_smart_suspend(link->supplier) &&
--
2.49.0
On Wed, Mar 19, 2025 at 12:44 PM Colin Ian King <colin.i.king@gmail.com> wrote:
>
> The mask operation link->flags | DL_FLAG_PM_RUNTIME is always true which
> is incorrect. The mask operation should be using the bit-wise &
> operator. Fix this.
>
> Fixes: bca84a7b93fd ("PM: sleep: Use DPM_FLAG_SMART_SUSPEND conditionally")
> Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
> ---
> drivers/base/power/main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
> index ad50018b8047..ac2a197c1234 100644
> --- a/drivers/base/power/main.c
> +++ b/drivers/base/power/main.c
> @@ -1836,7 +1836,7 @@ static bool device_prepare_smart_suspend(struct device *dev)
> idx = device_links_read_lock();
>
> list_for_each_entry_rcu_locked(link, &dev->links.suppliers, c_node) {
> - if (!(link->flags | DL_FLAG_PM_RUNTIME))
> + if (!(link->flags & DL_FLAG_PM_RUNTIME))
> continue;
>
> if (!dev_pm_smart_suspend(link->supplier) &&
> --
Ouch, thanks for the fix!
Applied.
© 2016 - 2025 Red Hat, Inc.