X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Floader%2Floader.c;h=9ff5115221f3868af468195c53cc657a9066ed00;hb=fe5fddd7e2df74233a2a02ae021418485f39d11c;hp=47e1f58746ce6c4ded590783524919026ce3bb16;hpb=3ecd9e1a93817180fa5b280e5fe11c903cca38ba;p=mesa.git diff --git a/src/loader/loader.c b/src/loader/loader.c index 47e1f58746c..9ff5115221f 100644 --- a/src/loader/loader.c +++ b/src/loader/loader.c @@ -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)