diff --git a/hw/xwayland/xwayland-dmabuf.c b/hw/xwayland/xwayland-dmabuf.c index 8119e1ddb..0c5ed1c86 100644 --- a/hw/xwayland/xwayland-dmabuf.c +++ b/hw/xwayland/xwayland-dmabuf.c @@ -74,6 +74,7 @@ xwl_dmabuf_feedback_destroy(struct xwl_dmabuf_feedback *xwl_feedback) zwp_linux_dmabuf_feedback_v1_destroy(xwl_feedback->dmabuf_feedback); xwl_feedback->dmabuf_feedback = NULL; + drmFreeDevice(&xwl_feedback->main_dev); } static Bool @@ -474,6 +475,8 @@ xwl_dmabuf_feedback_main_device(void *data, assert(dev->size == sizeof(dev_t)); memcpy(&devid, dev->data, sizeof(dev_t)); + drmFreeDevice(&xwl_feedback->main_dev); + if (drmGetDeviceFromDevId(devid, 0, &xwl_feedback->main_dev) != 0) ErrorF("linux_dmabuf_feedback.main_device: Failed to fetch DRM device\n"); }