Hello, Can you please tell against which version of hal source you made this patch ? I tried it against the hal sources in my fedora distro and got errors when patching. Rgs, Kevin On Wed, Feb 18, 2009 at 10:06 AM, Daniel Wagner <wagi@xxxxxxxxx> wrote: > On Mon, Feb 16, 2009 at 01:00:51PM -0500, Dan Williams wrote: >> On Mon, 2009-02-16 at 18:25 +0100, Daniel Wagner wrote: >> > On Mon, Feb 16, 2009 at 05:04:44PM +0100, Johannes Berg wrote: >> > > On Mon, 2009-02-16 at 17:00 +0100, Daniel Wagner wrote: >> > > >> > > > hotplug_event_begin_add_dev (..., parent_dev = NULL, ...) >> > > > net_add(..., parent_dev = NULL, ...) >> > > > { >> > > > if (parent_dev == NULL) >> > > > goto error; >> > > > } >> > > > >> > > > Before I go deeper into that thing, does someone has >> > > > an idea what could go wrong here with mac80211_hwsim? >> > > >> > > hwsim phys have no parents in sysfs since they're virtual. >> > >> > Do you propose to patch hald to handle this situation then? >> >> The patch (for now) would have to go in hal, since obviously if HAL >> can't see it, NM won't. Until we port over to DeviceKit of course. > > Thanks for the information. After looking at HAL for a while and > knowing that it will be replaced in the near future I decided > not to write a proper patch. Instead I came up with a big hack. > With this hack NM sees the mac80211_hwsim devices :) > > daniel > > --- > hald/linux/device.c | 23 +++++++++++++---------- > 1 files changed, 13 insertions(+), 10 deletions(-) > > diff --git a/hald/linux/device.c b/hald/linux/device.c > index e48548e..699d26b 100644 > --- a/hald/linux/device.c > +++ b/hald/linux/device.c > @@ -497,20 +497,22 @@ net_add (const gchar *sysfs_path, const gchar *device_file, HalDevice *parent_de > guint media_type; > gint flags; > > - d = NULL; > - > - if (parent_dev == NULL) > - goto error; > - > d = hal_device_new (); > hal_device_property_set_string (d, "linux.sysfs_path", sysfs_path); > - hal_device_property_set_string (d, "info.parent", hal_device_get_udi (parent_dev)); > + if (parent_dev != NULL) { > + hal_device_property_set_string (d, "info.parent", hal_device_get_udi (parent_dev)); > + hal_device_property_set_string (d, "net.originating_device", hal_device_get_udi (parent_dev)); > + } else { > + hal_device_property_set_string (d, "info.parent", "/org/freedesktop/Hal/devices/computer"); > + hal_device_property_set_string (d, "net.originating_device", "/org/freedesktop/Hal/devices/computer"); > + hal_device_property_set_string (d, "info.linux.driver", "mac80211_hwsim"); > + parent_dev = hal_device_store_find (hald_get_gdl (), "/org/freedesktop/Hal/devices/computer"); > + hal_device_property_set_string (parent_dev, "info.linux.driver", "mac80211"); > + } > > hal_device_property_set_string (d, "info.category", "net"); > hal_device_add_capability (d, "net"); > > - hal_device_property_set_string (d, "net.originating_device", hal_device_get_udi (parent_dev)); > - > ifname = hal_util_get_last_element (sysfs_path); > hal_device_property_set_string (d, "net.interface", ifname); > > @@ -530,7 +532,7 @@ net_add (const gchar *sysfs_path, const gchar *device_file, HalDevice *parent_de > media_type = hal_device_property_get_int (d, "net.arp_proto_hw_id"); > if (media_type == ARPHRD_ETHER) { > const char *addr; > - const char *parent_subsys; > + const char *parent_subsys = 0; > char bridge_path[HAL_PATH_MAX]; > char wireless_path[HAL_PATH_MAX]; > char wiphy_path[HAL_PATH_MAX]; > @@ -557,7 +559,8 @@ net_add (const gchar *sysfs_path, const gchar *device_file, HalDevice *parent_de > snprintf (wireless_path, HAL_PATH_MAX, "%s/wireless", sysfs_path); > /* wireless dscape stack e.g. from rt2500pci driver*/ > snprintf (wiphy_path, HAL_PATH_MAX, "%s/wiphy", sysfs_path); > - parent_subsys = hal_device_property_get_string (parent_dev, "info.subsystem"); > + if (parent_dev) > + parent_subsys = hal_device_property_get_string (parent_dev, "info.subsystem"); > > if (parent_subsys && strcmp(parent_subsys, "bluetooth") == 0) { > hal_device_property_set_string (d, "info.product", "Bluetooth Interface"); > -- > 1.6.0.2.GIT > > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html