chiark / gitweb /
doc: update punctuation
[elogind.git] / src / udev / udev-builtin-hwdb.c
index 314587f2bb2fbf1c0800198d4fd433af93dbf7dc..d6aa96bb3dc2449682be4796d5ec4276b5fd6463 100644 (file)
@@ -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 */