From: Michel Dänzer <michel.daenzer@xxxxxxx> The RandR screen private is already freed when our CloseScreen runs, so this can't do anything useful. This cleanup has to be done by the X server itself. (Ported from amdgpu commit 5f06d6b8ba570b500956ad26fee711d5ac427818) Signed-off-by: Michel Dänzer <michel.daenzer at amd.com> --- src/drmmode_display.c | 20 -------------------- src/drmmode_display.h | 2 -- src/radeon_kms.c | 1 - 3 files changed, 23 deletions(-) diff --git a/src/drmmode_display.c b/src/drmmode_display.c index ff098975f..60c1cdc18 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -2522,26 +2522,6 @@ drmmode_terminate_lease(RRLeasePtr lease) #endif // XF86_LEASE_VERSION -void -drmmode_terminate_leases(ScrnInfoPtr pScrn) -{ -#ifdef XF86_LEASE_VERSION - ScreenPtr screen = xf86ScrnToScreen(pScrn); - RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); - rrScrPrivPtr scr_priv = rrGetScrPriv(screen); - RRLeasePtr lease, next; - - xorg_list_for_each_entry_safe(lease, next, &scr_priv->leases, list) { - drmmode_lease_private_ptr lease_private = lease->devPrivate; - drmModeRevokeLease(pRADEONEnt->fd, lease_private->lessee_id); - free(lease_private); - lease->devPrivate = NULL; - RRLeaseTerminated(lease); - RRLeaseFree(lease); - } -#endif -} - static const xf86CrtcConfigFuncsRec drmmode_xf86crtc_config_funcs = { .resize = drmmode_xf86crtc_resize, #ifdef XF86_LEASE_VERSION diff --git a/src/drmmode_display.h b/src/drmmode_display.h index 4551e0c77..c5a55891a 100644 --- a/src/drmmode_display.h +++ b/src/drmmode_display.h @@ -227,8 +227,6 @@ PixmapPtr drmmode_crtc_scanout_create(xf86CrtcPtr crtc, extern void drmmode_uevent_init(ScrnInfoPtr scrn, drmmode_ptr drmmode); extern void drmmode_uevent_fini(ScrnInfoPtr scrn, drmmode_ptr drmmode); -extern void drmmode_terminate_leases(ScrnInfoPtr scrn); - Bool drmmode_set_mode(xf86CrtcPtr crtc, struct drmmode_fb *fb, DisplayModePtr mode, int x, int y); diff --git a/src/radeon_kms.c b/src/radeon_kms.c index c8a5726ad..36840ad36 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -2154,7 +2154,6 @@ static Bool RADEONCloseScreen_KMS(ScreenPtr pScreen) /* Clear mask of assigned crtc's in this generation */ pRADEONEnt->assigned_crtcs = 0; - drmmode_terminate_leases(pScrn); drmmode_uevent_fini(pScrn, &info->drmmode); radeon_drm_queue_close(pScrn); radeon_cs_flush_indirect(pScrn); -- 2.18.0