lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 1 Mar 2024 06:20:52 +0100
From: "Linux regression tracking (Thorsten Leemhuis)"
 <regressions@...mhuis.info>
To: Hans de Goede <hdegoede@...hat.com>,
 Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: Arnd Bergmann <arnd@...db.de>, Eric Piel <eric.piel@...mplin-utc.net>,
 linux-kernel@...r.kernel.org, Paul Menzel <pmenzel@...gen.mpg.de>,
 stable@...r.kernel.org, regressions@...ts.linux.dev
Subject: Re: [PATCH regression fix] misc: lis3lv02d_i2c: Fix regulators
 getting en-/dis-abled twice on suspend/resume

On 27.02.24 17:25, Linux regression tracking (Thorsten Leemhuis) wrote:
> On 20.02.24 20:00, Hans de Goede wrote:
>> When not configured for wakeup lis3lv02d_i2c_suspend() will call
>> lis3lv02d_poweroff() even if the device has already been turned off
>> by the runtime-suspend handler and if configured for wakeup and
>> the device is runtime-suspended at this point then it is not turned
>> back on to serve as a wakeup source.
>>
>> [...]
>>
>> Fixes: b1b9f7a49440 ("misc: lis3lv02d_i2c: Add missing setting of the reg_ctrl callback")
>> Reported-by: Paul Menzel <pmenzel@...gen.mpg.de>
>> Closes: https://lore.kernel.org/regressions/5fc6da74-af0a-4aac-b4d5-a000b39a63a5@molgen.mpg.de/
>> Cc: stable@...r.kernel.org
>> Cc: regressions@...ts.linux.dev
> 
> Paul, did you maybe test this? I suppose Greg had no time to review this
> yet due to all the CVE stuff and stable tree maintenance; but with a bit
> of luck a "Tested-by" from your side might motivate him or somebody else
> to look into this.

Hmmm, Greg seems to be pretty busy with other stuff. Hans, is there
maybe someone we can motivate into reviewing this to make it easier for
Greg to pick this up and send it to Linus before -rc8/the final?

Sure, it's "just" a warning fix, still would have been nice to get this
into -rc7. But I guess time has already run out on that. :-/

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
If I did something stupid, please tell me, as explained on that page.

>> Signed-off-by: Hans de Goede <hdegoede@...hat.com>
>> ---
>>  drivers/misc/lis3lv02d/lis3lv02d_i2c.c | 21 +++++++++++++--------
>>  1 file changed, 13 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/misc/lis3lv02d/lis3lv02d_i2c.c b/drivers/misc/lis3lv02d/lis3lv02d_i2c.c
>> index c6eb27d46cb0..15119584473c 100644
>> --- a/drivers/misc/lis3lv02d/lis3lv02d_i2c.c
>> +++ b/drivers/misc/lis3lv02d/lis3lv02d_i2c.c
>> @@ -198,8 +198,14 @@ static int lis3lv02d_i2c_suspend(struct device *dev)
>>  	struct i2c_client *client = to_i2c_client(dev);
>>  	struct lis3lv02d *lis3 = i2c_get_clientdata(client);
>>  
>> -	if (!lis3->pdata || !lis3->pdata->wakeup_flags)
>> +	/* Turn on for wakeup if turned off by runtime suspend */
>> +	if (lis3->pdata && lis3->pdata->wakeup_flags) {
>> +		if (pm_runtime_suspended(dev))
>> +			lis3lv02d_poweron(lis3);
>> +	/* For non wakeup turn off if not already turned off by runtime suspend */
>> +	} else if (!pm_runtime_suspended(dev))
>>  		lis3lv02d_poweroff(lis3);
>> +
>>  	return 0;
>>  }
>>  
>> @@ -208,13 +214,12 @@ static int lis3lv02d_i2c_resume(struct device *dev)
>>  	struct i2c_client *client = to_i2c_client(dev);
>>  	struct lis3lv02d *lis3 = i2c_get_clientdata(client);
>>  
>> -	/*
>> -	 * pm_runtime documentation says that devices should always
>> -	 * be powered on at resume. Pm_runtime turns them off after system
>> -	 * wide resume is complete.
>> -	 */
>> -	if (!lis3->pdata || !lis3->pdata->wakeup_flags ||
>> -		pm_runtime_suspended(dev))
>> +	/* Turn back off if turned on for wakeup and runtime suspended*/
>> +	if (lis3->pdata && lis3->pdata->wakeup_flags) {
>> +		if (pm_runtime_suspended(dev))
>> +			lis3lv02d_poweroff(lis3);
>> +	/* For non wakeup turn back on if not runtime suspended */
>> +	} else if (!pm_runtime_suspended(dev))
>>  		lis3lv02d_poweron(lis3);
>>  
>>  	return 0;
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ