From 705594005185171b53987124a0073ef1b173aca6 Mon Sep 17 00:00:00 2001 From: Takanari Hayama Date: Mon, 29 Sep 2014 13:15:50 +0900 Subject: [PATCH] Release DMABUFs when destroying the buffer. Otherwise references to DMABUFs remained after the buffer is destroyed. Change-Id: Ic04f861dd067ad8e420d21cd492fb2e2e8a9b585 Signed-off-by: Tony SIM --- wayland-kms.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/wayland-kms.c b/wayland-kms.c index 2ea3a8d..98b482d 100644 --- a/wayland-kms.c +++ b/wayland-kms.c @@ -73,12 +73,15 @@ struct wl_kms { static void destroy_buffer(struct wl_resource *resource) { struct wl_kms_buffer *buffer = resource->data; - struct drm_gem_close close; - int ret; + struct drm_gem_close gem_close; + int i, ret; + + for (i = 0; i < buffer->num_planes; i++) + close(buffer->planes[i].fd); if (buffer->handle) { - close.handle = buffer->handle; - ret = drmIoctl(buffer->kms->fd, DRM_IOCTL_GEM_CLOSE, &close); + gem_close.handle = buffer->handle; + ret = drmIoctl(buffer->kms->fd, DRM_IOCTL_GEM_CLOSE, &gem_close); if (ret) WLKMS_DEBUG("%s: %s: DRM_IOCTL_GEM_CLOSE failed.(%s)\n", __FILE__, __func__, strerror(errno)); -- 2.7.4