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));