chiark / gitweb /
[PATCH] If a CALLOUT rule has a BUS id, then we must check to see if the device is...
[elogind.git] / namedev.c
index 1e600bbe6d2b997112325133dbc03c980c2d12d7..de1b20618022f8f48820fca1c01691b2c08167e2 100644 (file)
--- a/namedev.c
+++ b/namedev.c
@@ -252,6 +252,7 @@ static struct bus_file {
 } bus_files[] = {
        { .bus = "scsi",        .file = "vendor" },
        { .bus = "usb",         .file = "idVendor" },
+       { .bus = "pci",         .file = "vendor" },
        {}
 };
 
@@ -398,7 +399,10 @@ static int do_callout(struct sysfs_class_device *class_dev, struct udevice *udev
                if (dev->type != CALLOUT)
                        continue;
 
-               if (sysfs_device) {
+               if (dev->bus[0] != '\0') {
+                       /* as the user specified a bus, we must match it up */
+                       if (!sysfs_device)
+                               continue;
                        dbg("dev->bus='%s' sysfs_device->bus='%s'", dev->bus, sysfs_device->bus);
                        if (strcasecmp(dev->bus, sysfs_device->bus) != 0)
                                continue;