X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fudev%2Fudev-builtin-hwdb.c;h=d6aa96bb3dc2449682be4796d5ec4276b5fd6463;hb=86e6e5d1b4e78d62d1a45539c1de141bc5e839aa;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..d6aa96bb3 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,9 +177,9 @@ 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 */