From c211f841d9b1d377256b5f8338910aa30e3ffa58 Mon Sep 17 00:00:00 2001 From: Danny Kukawka Date: Mon, 11 Aug 2008 16:12:45 +0200 Subject: [PATCH 14/48] fixed device removage Fixed device removage. Remove childs maually only if they have no sysfs_path which means they are spawned normaly. --- hald/linux/device.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/hald/linux/device.c b/hald/linux/device.c index 8bbe949..20cbb06 100644 --- a/hald/linux/device.c +++ b/hald/linux/device.c @@ -4505,8 +4505,11 @@ hotplug_event_begin_remove_dev (const gchar *subsystem, const gchar *sysfs_path, for (tmp = children; tmp != NULL; tmp = g_slist_next (tmp)) { child = HAL_DEVICE (tmp->data); - HAL_INFO(("Remove now: %s as child of: %s", hal_device_get_udi(child), hal_device_get_udi(d))); - hal_util_callout_device_remove (child, dev_callouts_remove_child_done, NULL, NULL); + /* find childs without sysfs path as e.g. spawned devices*/ + if (hal_device_property_get_string(child, "linux.sysfs_path") == NULL) { + HAL_INFO(("Remove now: %s as child of: %s", hal_device_get_udi(child), hal_device_get_udi(d))); + hal_util_callout_device_remove (child, dev_callouts_remove_child_done, NULL, NULL); + } } g_slist_free (children); -- 1.6.1.2