if (subsystem && !streq(dsubsys, subsystem))
continue;
+ modalias = udev_device_get_property_value(d, "MODALIAS");
+
/* the usb_device does not have a modalias, compose one */
- if (streq(dsubsys, "usb"))
+ if (!modalias && streq(dsubsys, "usb"))
modalias = modalias_usb(d, s, sizeof(s));
- if (!modalias)
- modalias = udev_device_get_property_value(d, "MODALIAS");
-
if (!modalias)
continue;
} else
srcdev = dev;
- if (udev_builtin_hwdb_search(dev, srcdev, subsystem, prefix, filter, test) < 0)
- return EXIT_FAILURE;
- return EXIT_SUCCESS;
+ if (udev_builtin_hwdb_search(dev, srcdev, subsystem, prefix, filter, test) > 0)
+ return EXIT_SUCCESS;
+ return EXIT_FAILURE;
}
/* called at udev startup and reload */