Re: [PATCH] PM-runtime: fix denying of auto suspend in pm_suspend_timer_fn
From: Charan Teja Kalla
Date: Sun May 18 2025 - 02:43:26 EST
Hi Rafael,
On 5/17/2025 1:36 AM, Rafael J. Wysocki wrote:
>> diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c
>> index 205a4f8828b0..c55a7c70bc1a 100644
>> --- a/drivers/base/power/runtime.c
>> +++ b/drivers/base/power/runtime.c
>> @@ -1011,7 +1011,7 @@ static enum hrtimer_restart pm_suspend_timer_fn(struct hrtimer *timer)
>> * If 'expires' is after the current time, we've been called
>> * too early.
>> */
>> - if (expires > 0 && expires < ktime_get_mono_fast_ns()) {
>> + if (expires > 0 && expires <= ktime_get_mono_fast_ns()) {
>> dev->power.timer_expires = 0;
>> rpm_suspend(dev, dev->power.timer_autosuspends ?
>> (RPM_ASYNC | RPM_AUTO) : RPM_ASYNC);
>> --
> Applied as 6.16 material, thanks!
Can you help me with why 'expires < ktime_get_mono_fast_ns())' is there?
We know that a timer callback is never going to get called before its
expiry. May be removal of this check altogether is the proper fix?
Thanks,
Charan