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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 1 Sep 2022 16:58:37 +0200
From:   Hans de Goede <hdegoede@...hat.com>
To:     Guenter Roeck <linux@...ck-us.net>,
        "Luke D. Jones" <luke@...nes.dev>
Cc:     linux-kernel@...r.kernel.org, linux-hwmon@...r.kernel.org,
        platform-driver-x86@...r.kernel.org, markgross@...nel.org
Subject: Re: [PATCH] asus-wmi: Increase FAN_CURVE_BUF_LEN to 32

Hi All,

On 8/29/22 15:35, Guenter Roeck wrote:
> On Sun, Aug 28, 2022 at 07:46:38PM +1200, Luke D. Jones wrote:
>> Fix for TUF laptops returning with an -ENOSPC on calling
>> asus_wmi_evaluate_method_buf() when fetching default curves. The TUF method
>> requires at least 32 bytes space.
>>
>> This also moves and changes the pr_debug() in fan_curve_check_present() to
>> pr_warn() in fan_curve_get_factory_default() so that there is at least some
>> indication in logs of why it fails.
>>
>> Signed-off-by: Luke D. Jones <luke@...nes.dev>
>> ---
>>  drivers/platform/x86/asus-wmi.c | 9 ++++-----
>>  1 file changed, 4 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
>> index 3d9fd58573f9..11203213e00d 100644
>> --- a/drivers/platform/x86/asus-wmi.c
>> +++ b/drivers/platform/x86/asus-wmi.c
>> @@ -108,7 +108,7 @@ module_param(fnlock_default, bool, 0444);
>>  #define WMI_EVENT_MASK			0xFFFF
>>  
>>  #define FAN_CURVE_POINTS		8
>> -#define FAN_CURVE_BUF_LEN		(FAN_CURVE_POINTS * 2)
>> +#define FAN_CURVE_BUF_LEN		32
>>  #define FAN_CURVE_DEV_CPU		0x00
>>  #define FAN_CURVE_DEV_GPU		0x01
>>  /* Mask to determine if setting temperature or percentage */
>> @@ -2383,8 +2383,10 @@ static int fan_curve_get_factory_default(struct asus_wmi *asus, u32 fan_dev)
>>  	curves = &asus->custom_fan_curves[fan_idx];
>>  	err = asus_wmi_evaluate_method_buf(asus->dsts_id, fan_dev, mode, buf,
>>  					   FAN_CURVE_BUF_LEN);
>> -	if (err)
>> +	if (err) {
>> +		pr_warn("%s (0x%08x) failed: %d\n", __func__, fan_dev, err);
>>  		return err;
>> +	}
>>  
>>  	fan_curve_copy_from_buf(curves, buf);
>>  	curves->device_id = fan_dev;
>> @@ -2402,9 +2404,6 @@ static int fan_curve_check_present(struct asus_wmi *asus, bool *available,
>>  
>>  	err = fan_curve_get_factory_default(asus, fan_dev);
>>  	if (err) {
>> -		pr_debug("fan_curve_get_factory_default(0x%08x) failed: %d\n",
>> -			 fan_dev, err);
>> -		/* Don't cause probe to fail on devices without fan-curves */
> 
> The pr_warn() should be here. If you want to have a message from the call
> in fan_curve_enable_store(), add dev_err() there.

Guenter I can understand where you are coming from with the warn vs err
thing but IMHO that is a minor concern and I'm actually a fan of pushing
error logging closer to the first failing call so that we only have
one place to log the error instead of having to log it separately in
all the callers.

So I'm going to take this patch as is.

Regards,

Hans

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ