From: Kay Sievers Date: Thu, 4 Aug 2005 23:52:57 +0000 (+0200) Subject: read sysfs attribute also from parent class device X-Git-Tag: 174~2655 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=738428b4499211247dafa394805ecaa2cb313f03 read sysfs attribute also from parent class device Signed-off-by: Kay Sievers --- diff --git a/udev_rules.c b/udev_rules.c index 6a485f08a..d86b8e859 100644 --- a/udev_rules.c +++ b/udev_rules.c @@ -295,6 +295,7 @@ static int find_free_number(struct udevice *udev, const char *name) static int find_sysfs_attribute(struct sysfs_class_device *class_dev, struct sysfs_device *sysfs_device, const char *name, char *value, size_t len) { + struct sysfs_class_device *class_dev_parent; struct sysfs_attribute *tmpattr; dbg("look for device attribute '%s'", name); @@ -303,6 +304,12 @@ static int find_sysfs_attribute(struct sysfs_class_device *class_dev, struct sys tmpattr = sysfs_get_classdev_attr(class_dev, name); if (tmpattr) goto attr_found; + class_dev_parent = sysfs_get_classdev_parent(class_dev); + if (class_dev_parent) { + tmpattr = sysfs_get_classdev_attr(class_dev_parent, name); + if (tmpattr) + goto attr_found; + } } if (sysfs_device) { dbg("look for devices attribute '%s/%s'", sysfs_device->path, name);