Almost there. Still getting this on driver unbind: kobject: '(null)' ((____ptrval____)): is not initialized, yet kobject_put(= ) is being called [ ... ] Call Trace: ttm_device_fini+0x133/0x1b0 [ttm] qxl_ttm_fini+0x2f/0x40 [qxl] qxl_device_fini+0x88/0x120 [qxl] drm_minor_release+0x3d/0x60 but I don't think this is the qxl driver's fault. v5: - add release_event wait queue. - also cleanup qxl_fence_wait(). Gerd Hoffmann (6): drm/qxl: use drmm_mode_config_init drm/qxl: unpin release objects drm/qxl: release shadow on shutdown drm/qxl: handle shadow in primary destroy drm/qxl: properly free qxl releases drm/qxl: simplify qxl_fence_wait drivers/gpu/drm/qxl/qxl_drv.h | 2 ++ drivers/gpu/drm/qxl/qxl_cmd.c | 1 + drivers/gpu/drm/qxl/qxl_display.c | 11 ++++++-- drivers/gpu/drm/qxl/qxl_irq.c | 1 + drivers/gpu/drm/qxl/qxl_kms.c | 22 +++++++++++++-- drivers/gpu/drm/qxl/qxl_release.c | 45 +++++-------------------------- 6 files changed, 40 insertions(+), 42 deletions(-) --=20 2.29.2 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel