|
@@ -115,6 +115,16 @@ add_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static void remove_dock_dependent_devices(struct dock_station *ds)
|
|
|
+{
|
|
|
+ struct dock_dependent_device *dd, *aux;
|
|
|
+
|
|
|
+ list_for_each_entry_safe(dd, aux, &ds->dependent_devices, list) {
|
|
|
+ list_del(&dd->list);
|
|
|
+ kfree(dd);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* dock_init_hotplug - Initialize a hotplug device on a docking station.
|
|
|
* @dd: Dock-dependent device.
|
|
@@ -895,6 +905,7 @@ static int __init dock_add(acpi_handle handle)
|
|
|
return 0;
|
|
|
|
|
|
err_rmgroup:
|
|
|
+ remove_dock_dependent_devices(dock_station);
|
|
|
sysfs_remove_group(&dd->dev.kobj, &dock_attribute_group);
|
|
|
err_unregister:
|
|
|
platform_device_unregister(dd);
|