egl/dri2/drm: compact existing device mgmt
authorEmil Velikov <emil.l.velikov@gmail.com>
Mon, 7 Sep 2015 08:53:53 +0000 (09:53 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Tue, 15 Sep 2015 11:37:27 +0000 (12:37 +0100)
Move the fcntl(dupfd_cloexec) to the else branch where it belongs.
Otherwise it's not immediately obvious that the code is hit, only when
an existing device is used.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Boyan Ding <boyan.j.ding@gmail.com>
src/egl/drivers/dri2/platform_drm.c

index 7e9728046089f069a25db9c31f6f9cb88a61cad0..050c309dceb4ab62c9511191888a51b7e26ccf7d 100644 (file)
@@ -624,6 +624,10 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
       gbm = gbm_create_device(fd);
       if (gbm == NULL)
          goto cleanup;
+   } else {
+      fd = fcntl(gbm_device_get_fd(gbm), F_DUPFD_CLOEXEC, 3);
+      if (fd < 0)
+         goto cleanup;
    }
 
    if (strcmp(gbm_device_get_backend_name(gbm), "drm") != 0)
@@ -633,12 +637,6 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
    if (dri2_dpy->gbm_dri->base.type != GBM_DRM_DRIVER_TYPE_DRI)
       goto cleanup;
 
-   if (fd < 0) {
-      fd = fcntl(gbm_device_get_fd(gbm), F_DUPFD_CLOEXEC, 3);
-      if (fd < 0)
-         goto cleanup;
-   }
-
    dri2_dpy->fd = fd;
    dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd);
    dri2_dpy->driver_name = strdup(dri2_dpy->gbm_dri->base.driver_name);