Close GEM handles on buffer destroy 87/30487/4
authorDamian Hobson-Garcia <dhobsong@igel.co.jp>
Mon, 3 Feb 2014 04:09:07 +0000 (13:09 +0900)
committerTony SIM <chinyeow.sim.xt@renesas.com>
Thu, 18 Dec 2014 09:35:26 +0000 (01:35 -0800)
Change-Id: I2ec7d3f5a615e9e66ac7c487c57421b9294c6127
Signed-off-by: Tony SIM <chinyeow.sim.xt@renesas.com>
wayland-kms.c

index fbe6532..c592135 100644 (file)
@@ -73,6 +73,16 @@ 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;
+       if (buffer->handle) {
+               close.handle = buffer->handle;
+               ret = drmIoctl(buffer->kms->fd, DRM_IOCTL_GEM_CLOSE, &close);
+               if (ret)
+                       WLKMS_DEBUG("%s: %s: DRM_IOCTL_GEM_CLOSE failed.(%s)\n",
+                                __FILE__, __func__, strerror(errno));
+       }
+
        free(buffer);
 }