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 */
-static int builtin_hwdb_init(struct udev *udev)
-{
+static int builtin_hwdb_init(struct udev *udev) {
if (hwdb)
return 0;
hwdb = udev_hwdb_new(udev);
}
/* called on udev shutdown and reload request */
-static void builtin_hwdb_exit(struct udev *udev)
-{
+static void builtin_hwdb_exit(struct udev *udev) {
hwdb = udev_hwdb_unref(hwdb);
}
/* called every couple of seconds during event activity; 'true' if config has changed */
-static bool builtin_hwdb_validate(struct udev *udev)
-{
+static bool builtin_hwdb_validate(struct udev *udev) {
return udev_hwdb_validate(hwdb);
}