diff --git a/src/loader/loader.c b/src/loader/loader.c index 5ec26b80b96..02734d7d2f9 100644 --- a/src/loader/loader.c +++ b/src/loader/loader.c @@ -583,21 +583,18 @@ bool loader_get_user_preferred_fd(int *fd_render_gpu, int *original_fd) log_(debug ? _LOADER_WARNING : _LOADER_INFO, "selected (%s)\n", devices[i]->nodes[DRM_NODE_RENDER]); fd = loader_open_device(devices[i]->nodes[DRM_NODE_RENDER]); + if (fd < 0) { + log_(debug ? _LOADER_WARNING : _LOADER_INFO, + "DRI_PRIME: failed to open '%s'\n", + devices[i]->nodes[DRM_NODE_RENDER]); + } break; } drmFreeDevices(devices, num_devices); - if (i == num_devices) + if (i == num_devices || fd < 0) goto err; - if (fd < 0) { - log_(debug ? _LOADER_WARNING : _LOADER_INFO, - "DRI_PRIME: failed to open '%s'\n", - devices[i]->nodes[DRM_NODE_RENDER]); - - goto err; - } - bool is_render_and_display_gpu_diff = !!strcmp(default_tag, prime.str); if (original_fd) { if (is_render_and_display_gpu_diff) {