diff mbox

[Resend] ACPI/AC: add check the return value of power_supply_regiester()

Message ID 1342762156-22879-1-git-send-email-tianyu.lan@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

lan,Tianyu July 20, 2012, 5:29 a.m. UTC
In the ac.c, lack check return value of power_supply_register().
This may casue that acpi driver's add() ops was called successful
while the device may be failed to be initalized. For example, some
ugly bios may describe two ACADs in the same dsdt. They use the same
name which will cause the second ACAD device can no be registered.
And then power_supply_register() failed. But acpi driver's add() ops
is called sucessfully. The acpi device also will receive acpi notification
and cause oops.
	https://bugzilla.redhat.com/show_bug.cgi?id=772730

Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
---
 drivers/acpi/ac.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

Comments

Len Brown July 24, 2012, 5:47 a.m. UTC | #1
applied.

thanks,
Len Brown, Intel Open Source Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
index 6512b20..d1fcbc0 100644
--- a/drivers/acpi/ac.c
+++ b/drivers/acpi/ac.c
@@ -292,7 +292,9 @@  static int acpi_ac_add(struct acpi_device *device)
 	ac->charger.properties = ac_props;
 	ac->charger.num_properties = ARRAY_SIZE(ac_props);
 	ac->charger.get_property = get_ac_property;
-	power_supply_register(&ac->device->dev, &ac->charger);
+	result = power_supply_register(&ac->device->dev, &ac->charger);
+	if (result)
+		goto end;
 
 	printk(KERN_INFO PREFIX "%s [%s] (%s)\n",
 	       acpi_device_name(device), acpi_device_bid(device),