v3d: Don't leak the GPU fd for renderonly usage.
authorEric Anholt <eric@anholt.net>
Wed, 16 Jan 2019 00:03:44 +0000 (16:03 -0800)
committerEric Anholt <eric@anholt.net>
Thu, 17 Jan 2019 00:28:41 +0000 (16:28 -0800)
The CTS was running out of fds, because of the ro->gpu_fd never being
closed.  ro->gpu_fd should match the screen (in case the caller of
v3d_drm_screen_create_renderonly() has a scanout_for_resource() that uses
gpu_fd) and the screen is expected to close its fd at the end, fixing the
resource leak.

Fixes: e113b21cb779 ("v3d: Add renderonly support.")

src/gallium/winsys/v3d/drm/v3d_drm_winsys.c

index a478606..cda830f 100644 (file)
@@ -37,5 +37,5 @@ v3d_drm_screen_create(int fd)
 struct pipe_screen *
 v3d_drm_screen_create_renderonly(struct renderonly *ro)
 {
-       return v3d_screen_create(fcntl(ro->gpu_fd, F_DUPFD_CLOEXEC, 3), ro);
+       return v3d_screen_create(ro->gpu_fd, ro);
 }