X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fudev%2Fudev-builtin-hwdb.c;h=cac97e756bb58e211507f5683a903b06b7edea49;hb=464cf22f17e0cf2d8bfa6d72b5e7a662d634f149;hp=314587f2bb2fbf1c0800198d4fd433af93dbf7dc;hpb=a4bbef099209d4e3bccd913cd30da536f8971064;p=elogind.git diff --git a/src/udev/udev-builtin-hwdb.c b/src/udev/udev-builtin-hwdb.c index 314587f2b..cac97e756 100644 --- a/src/udev/udev-builtin-hwdb.c +++ b/src/udev/udev-builtin-hwdb.c @@ -102,13 +102,12 @@ static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device 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; @@ -178,14 +177,13 @@ static int builtin_hwdb(struct udev_device *dev, int argc, char *argv[], bool te } 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); @@ -195,14 +193,12 @@ static int builtin_hwdb_init(struct udev *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); }