}
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;
}
}
fd = drm_open_device(device_name);
- if (fd > 0) {
+ if (fd >= 0) {
close(default_fd);
} else {
fd = default_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)