platform/x86: huawei-wmi: check the return value of device_create_file()
authorJia-Ju Bai <baijiaju1990@gmail.com>
Thu, 3 Mar 2022 02:24:21 +0000 (18:24 -0800)
committerHans de Goede <hdegoede@redhat.com>
Tue, 8 Mar 2022 15:33:15 +0000 (16:33 +0100)
The function device_create_file() in huawei_wmi_battery_add() can fail,
so its return value should be checked.

Fixes: 355a070b09ab ("platform/x86: huawei-wmi: Add battery charging thresholds")
Reported-by: TOTE Robot <oslab@tsinghua.edu.cn>
Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Link: https://lore.kernel.org/r/20220303022421.313-1-baijiaju1990@gmail.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/huawei-wmi.c

index a2d846c..eac3e6b 100644 (file)
@@ -470,10 +470,17 @@ static DEVICE_ATTR_RW(charge_control_thresholds);
 
 static int huawei_wmi_battery_add(struct power_supply *battery)
 {
-       device_create_file(&battery->dev, &dev_attr_charge_control_start_threshold);
-       device_create_file(&battery->dev, &dev_attr_charge_control_end_threshold);
+       int err = 0;
 
-       return 0;
+       err = device_create_file(&battery->dev, &dev_attr_charge_control_start_threshold);
+       if (err)
+               return err;
+
+       err = device_create_file(&battery->dev, &dev_attr_charge_control_end_threshold);
+       if (err)
+               device_remove_file(&battery->dev, &dev_attr_charge_control_start_threshold);
+
+       return err;
 }
 
 static int huawei_wmi_battery_remove(struct power_supply *battery)