diff options
author | Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> | 2011-07-12 09:03:29 +0100 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2011-07-16 18:57:24 -0400 |
commit | eb03cb02b74df6dd0b653d5f6d976f16a434dfaf (patch) | |
tree | 0df6bbc6e0013153a9f914d50ac8e9a93ad154ac /drivers/acpi/battery.c | |
parent | e80bba4b5108c6479379740201b0a5d9da5ffbac (diff) | |
download | lwn-eb03cb02b74df6dd0b653d5f6d976f16a434dfaf.tar.gz lwn-eb03cb02b74df6dd0b653d5f6d976f16a434dfaf.zip |
ACPI / Battery: propagate sysfs error in acpi_battery_add()
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>
Diffstat (limited to 'drivers/acpi/battery.c')
-rw-r--r-- | drivers/acpi/battery.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index c771768f57c8..ffce2f06dd8d 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c @@ -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 |