From 03178b0ccec2d4eed7e57563f17fc60adc0a4446 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Sat, 2 Jun 2007 22:00:10 +0200 Subject: [PATCH] sysfs: change order of subsystem lookup --- udev_sysfs.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/udev_sysfs.c b/udev_sysfs.c index 8525620a..98be9a53 100644 --- a/udev_sysfs.c +++ b/udev_sysfs.c @@ -446,16 +446,16 @@ int sysfs_lookup_devpath_by_subsys_id(char *devpath_full, size_t len, const char if (stat(path_full, &statbuf) == 0) goto found; - strlcpy(path, "/class/", sizeof(path_full) - sysfs_len); + strlcpy(path, "/bus/", sizeof(path_full) - sysfs_len); strlcat(path, id, sizeof(path_full) - sysfs_len); if (stat(path_full, &statbuf) == 0) goto found; + goto out; - strlcpy(path, "/bus/", sizeof(path_full) - sysfs_len); + strlcpy(path, "/class/", sizeof(path_full) - sysfs_len); strlcat(path, id, sizeof(path_full) - sysfs_len); if (stat(path_full, &statbuf) == 0) goto found; - goto out; } if (strcmp(subsystem, "module") == 0) { @@ -499,22 +499,21 @@ int sysfs_lookup_devpath_by_subsys_id(char *devpath_full, size_t len, const char if (stat(path_full, &statbuf) == 0) goto found; - strlcpy(path, "/class/", sizeof(path_full) - sysfs_len); + strlcpy(path, "/bus/", sizeof(path_full) - sysfs_len); strlcat(path, subsystem, sizeof(path_full) - sysfs_len); - strlcat(path, "/", sizeof(path_full) - sysfs_len); + strlcat(path, "/devices/", sizeof(path_full) - sysfs_len); strlcat(path, id, sizeof(path_full) - sysfs_len); if (stat(path_full, &statbuf) == 0) goto found; - strlcpy(path, "/bus/", sizeof(path_full) - sysfs_len); + strlcpy(path, "/class/", sizeof(path_full) - sysfs_len); strlcat(path, subsystem, sizeof(path_full) - sysfs_len); - strlcat(path, "/devices/", sizeof(path_full) - sysfs_len); + strlcat(path, "/", sizeof(path_full) - sysfs_len); strlcat(path, id, sizeof(path_full) - sysfs_len); if (stat(path_full, &statbuf) == 0) goto found; out: return 0; - found: if (S_ISLNK(statbuf.st_mode)) sysfs_resolve_link(path, sizeof(path_full) - sysfs_len); -- 2.39.5