Re: [PATCH v4 2/4] platform/x86: think-lmi: use correct possible_values delimiters

From: Hans de Goede
Date: Wed Mar 22 2023 - 10:23:53 EST


Hi,

On 3/20/23 16:22, Thomas Weißschuh wrote:
> Hi Mark,
>
> Thanks for the series!
> For all of it:
>
> Reviewed-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx>
>
> If you decide to reroll it, one more nitpick below.

Mark, thank you for the series. Thomas, thank you
for the reviews.

I've applied this series to the fixes branch now:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=fixes

Note it will show up in my fixes branch once I've pushed my
local branch there, which might take a while.

I will include this patch in my next fixes pull-req to Linus
for the current kernel development cycle.

Regards,

Hans




> On Sun, Mar 19, 2023 at 08:32:19PM -0400, Mark Pearson wrote:
>> firmware-attributes class requires that possible values are delimited
>> using ';' but the Lenovo firmware uses ',' instead.
>> Parse string and replace where appropriate.
>>
>> Suggested-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx>
>> Fixes: a40cd7ef22fb ("platform/x86: think-lmi: Add WMI interface support on Lenovo platforms")
>> Signed-off-by: Mark Pearson <mpearson-lenovo@xxxxxxxxx>
>> ---
>> Changes in v4
>> - Moved earlier in the series as recommended
>> - used strreplace function as recommended
>> Changes in v3:
>> - New patch added to the series. No v1 & v2.
>>
>> drivers/platform/x86/think-lmi.c | 9 ++++++++-
>> 1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/think-lmi.c
>> index a765bf8c27d8..53f34b1adb8c 100644
>> --- a/drivers/platform/x86/think-lmi.c
>> +++ b/drivers/platform/x86/think-lmi.c
>> @@ -954,7 +954,7 @@ static ssize_t type_show(struct kobject *kobj, struct kobj_attribute *attr,
>>
>> if (setting->possible_values) {
>> /* Figure out what setting type is as BIOS does not return this */
>> - if (strchr(setting->possible_values, ','))
>> + if (strchr(setting->possible_values, ';'))
>> return sysfs_emit(buf, "enumeration\n");
>
> If you make this patch the first on of the series it would
> * make the hunk above unnecessary.
> * make it easier to backport if somebody wants do do so.
> * make the then second patch easier to read as it would not introduce
> "incorrect" code that needs a fix-up in the following commit.
>
>> }
>> /* Anything else is going to be a string */
>> @@ -1413,6 +1413,13 @@ static int tlmi_analyze(void)
>> pr_info("Error retrieving possible values for %d : %s\n",
>> i, setting->display_name);
>> }
>> + /*
>> + * firmware-attributes requires that possible_values are separated by ';' but
>> + * Lenovo FW uses ','. Replace appropriately.
>> + */
>> + if (setting->possible_values)
>> + strreplace(setting->possible_values, ',', ';');
>> +
>> kobject_init(&setting->kobj, &tlmi_attr_setting_ktype);
>> tlmi_priv.setting[i] = setting;
>> kfree(item);
>> --
>> 2.39.2
>>
>