summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@linaro.org>2024-07-04 18:20:03 +0300
committerTzung-Bi Shih <tzungbi@kernel.org>2024-07-05 04:51:33 +0300
commit4baf1cc54433ff7c6e5178517bc8768001416681 (patch)
treeb3557a25637a221544ab76bd3e28632f4dc1fb47 /drivers/power
parentc98f17fec35e46629272226a898ebb0a653ee270 (diff)
downloadlinux-4baf1cc54433ff7c6e5178517bc8768001416681.tar.xz
power: supply: cros_charge-control: Fix signedness bug in charge_behaviour_store()
The C standard is vague about the signedness of enums, but in this case here, they are treated as unsigned so the error handling does not work. Use an int type to fix this. Fixes: c6ed48ef5259 ("power: supply: add ChromeOS EC based charge control driver") Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Acked-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://lore.kernel.org/r/ZoWKEs4mCqeLyTOB@stanley.mountain Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/supply/cros_charge-control.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/power/supply/cros_charge-control.c b/drivers/power/supply/cros_charge-control.c
index 2dd8ddbd56bc..17c53591ce19 100644
--- a/drivers/power/supply/cros_charge-control.c
+++ b/drivers/power/supply/cros_charge-control.c
@@ -204,14 +204,13 @@ static ssize_t charge_behaviour_store(struct device *dev, struct device_attribut
{
struct cros_chctl_priv *priv = cros_chctl_attr_to_priv(&attr->attr,
CROS_CHCTL_ATTR_CHARGE_BEHAVIOUR);
- enum power_supply_charge_behaviour behaviour;
int ret;
- behaviour = power_supply_charge_behaviour_parse(EC_CHARGE_CONTROL_BEHAVIOURS, buf);
- if (behaviour < 0)
- return behaviour;
+ ret = power_supply_charge_behaviour_parse(EC_CHARGE_CONTROL_BEHAVIOURS, buf);
+ if (ret < 0)
+ return ret;
- priv->current_behaviour = behaviour;
+ priv->current_behaviour = ret;
ret = cros_chctl_configure_ec(priv);
if (ret < 0)