From: Takanari Hayama Date: Mon, 29 Sep 2014 04:15:50 +0000 (+0900) Subject: Release DMABUFs when destroying the buffer. X-Git-Tag: accepted/tizen/ivi/20150202.020104~2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fadaptation%2Frenesas_rcar%2Fwayland-kms.git;a=commitdiff_plain;h=705594005185171b53987124a0073ef1b173aca6 Release DMABUFs when destroying the buffer. Otherwise references to DMABUFs remained after the buffer is destroyed. Change-Id: Ic04f861dd067ad8e420d21cd492fb2e2e8a9b585 Signed-off-by: Tony SIM --- 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));