ACPI / Battery: propagate sysfs error in acpi_battery_add()
authorStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Tue, 12 Jul 2011 08:03:29 +0000 (09:03 +0100)
committerLen Brown <len.brown@intel.com>
Sat, 16 Jul 2011 22:57:24 +0000 (18:57 -0400)
Make sure the error return from sysfs_add_battery() is checked and
propagated out from acpi_battery_add().

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/battery.c

index c771768..ffce2f0 100644 (file)
@@ -630,8 +630,11 @@ static int acpi_battery_update(struct acpi_battery *battery)
                        return result;
                acpi_battery_init_alarm(battery);
        }
-       if (!battery->bat.dev)
-               sysfs_add_battery(battery);
+       if (!battery->bat.dev) {
+               result = sysfs_add_battery(battery);
+               if (result)
+                       return result;
+       }
        result = acpi_battery_get_state(battery);
        acpi_battery_quirks(battery);
        return result;
@@ -982,7 +985,9 @@ static int acpi_battery_add(struct acpi_device *device)
        if (ACPI_SUCCESS(acpi_get_handle(battery->device->handle,
                        "_BIX", &handle)))
                set_bit(ACPI_BATTERY_XINFO_PRESENT, &battery->flags);
-       acpi_battery_update(battery);
+       result = acpi_battery_update(battery);
+       if (result)
+               goto fail;
 #ifdef CONFIG_ACPI_PROCFS_POWER
        result = acpi_battery_add_fs(device);
 #endif