[PATCH] platform/x86: uniwill-laptop: Fix signedness bug
From: Ethan Tidmore
Date: Fri Apr 03 2026 - 03:11:23 EST
The function sysfs_match_string() can return negative error codes and
the variable assigned to it is the enum 'option'. Which could be an
unsigned int due to different compiler implementations.
Assign signed variable 'ret' to sysfs_match_string(), check for error,
then assign ret to option.
Detected by Smatch:
drivers/platform/x86/uniwill/uniwill-acpi.c:919 usb_c_power_priority_store()
warn: unsigned 'option' is never less than zero.
Fixes: 03ae0a0d0973b ("platform/x86: uniwill-laptop: Implement USB-C power priority setting")
Signed-off-by: Ethan Tidmore <ethantidmore06@xxxxxxxxx>
---
drivers/platform/x86/uniwill/uniwill-acpi.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/platform/x86/uniwill/uniwill-acpi.c b/drivers/platform/x86/uniwill/uniwill-acpi.c
index faade4cf08be..945df5092637 100644
--- a/drivers/platform/x86/uniwill/uniwill-acpi.c
+++ b/drivers/platform/x86/uniwill/uniwill-acpi.c
@@ -915,10 +915,11 @@ static ssize_t usb_c_power_priority_store(struct device *dev,
unsigned int value;
int ret;
- option = sysfs_match_string(usb_c_power_priority_text, buf);
- if (option < 0)
- return option;
+ ret = sysfs_match_string(usb_c_power_priority_text, buf);
+ if (ret < 0)
+ return ret;
+ option = ret;
value = usb_c_power_priority_value[option];
guard(mutex)(&data->usb_c_power_priority_lock);
--
2.53.0