mapi: fix *glapi dependency tracking
[mesa.git] / src / loader / loader.c
index 47e1f58746ce6c4ded590783524919026ce3bb16..9ff5115221f3868af468195c53cc657a9066ed00 100644 (file)
@@ -207,9 +207,12 @@ libudev_get_pci_id_for_fd(int fd, int *vendor_id, int *chip_id)
    }
 
    pci_id = udev_device_get_property_value(parent, "PCI_ID");
-   if (pci_id == NULL ||
-       sscanf(pci_id, "%x:%x", vendor_id, chip_id) != 2) {
-      log_(_LOADER_WARNING, "MESA-LOADER: malformed or no PCI ID\n");
+   if (pci_id == NULL) {
+      log_(_LOADER_INFO, "MESA-LOADER: no PCI ID\n");
+      *chip_id = -1;
+      goto out;
+   } else if (sscanf(pci_id, "%x:%x", vendor_id, chip_id) != 2) {
+      log_(_LOADER_WARNING, "MESA-LOADER: malformed PCI ID\n");
       *chip_id = -1;
       goto out;
    }
@@ -402,7 +405,7 @@ int loader_get_user_preferred_fd(int default_fd, int *different_device)
    }
 
    fd = drm_open_device(device_name);
-   if (fd > 0) {
+   if (fd >= 0) {
       close(default_fd);
    } else {
       fd = default_fd;
@@ -594,6 +597,9 @@ libudev_get_device_name_for_fd(int fd)
                (struct udev_device *));
    UDEV_SYMBOL(struct udev *, udev_unref, (struct udev *));
 
+   if (dlsym_failed)
+      return NULL;
+
    udev = udev_new();
    device = udev_device_new_from_fd(udev, fd);
    if (device == NULL)