diff mbox

ACPI battery: don't invoke power_supply_changed twice when battery is hot-added

Message ID 1278465117.4537.7520.camel@rzhang1-desktop (mailing list archive)
State Accepted
Headers show

Commit Message

Zhang, Rui July 7, 2010, 1:11 a.m. UTC
None
diff mbox

Patch

Index: linux-2.6-clean/drivers/acpi/battery.c
===================================================================
--- linux-2.6-clean.orig/drivers/acpi/battery.c
+++ linux-2.6-clean/drivers/acpi/battery.c
@@ -868,9 +868,15 @@  static void acpi_battery_remove_fs(struc
 static void acpi_battery_notify(struct acpi_device *device, u32 event)
 {
 	struct acpi_battery *battery = acpi_driver_data(device);
+#ifdef CONFIG_ACPI_SYSFS_POWER
+	struct device *old;
+#endif
 
 	if (!battery)
 		return;
+#ifdef CONFIG_ACPI_SYSFS_POWER
+	old = battery->bat.dev;
+#endif
 	acpi_battery_update(battery);
 	acpi_bus_generate_proc_event(device, event,
 				     acpi_battery_present(battery));
@@ -879,7 +885,7 @@  static void acpi_battery_notify(struct a
 					acpi_battery_present(battery));
 #ifdef CONFIG_ACPI_SYSFS_POWER
 	/* acpi_battery_update could remove power_supply object */
-	if (battery->bat.dev)
+	if (old && battery->bat.dev)
 		power_supply_changed(&battery->bat);
 #endif
 }