diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c index 8bc652933..101856509 100644 --- a/hw/xwayland/xwayland-glamor.c +++ b/hw/xwayland/xwayland-glamor.c @@ -513,6 +513,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"); } diff --git a/hw/xwayland/xwayland-window.c b/hw/xwayland/xwayland-window.c index 4978f37c7..e932ce4cf 100644 --- a/hw/xwayland/xwayland-window.c +++ b/hw/xwayland/xwayland-window.c @@ -1131,6 +1131,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); } Bool