Blame SOURCES/0001-Avoid-RADEONLeaveVT_KMS-after-we-left-the-VT.patch

87e35e
From 779bafa175e6b47da086d84324f95cedd4dc487c Mon Sep 17 00:00:00 2001
87e35e
From: Olivier Fourdan <ofourdan@redhat.com>
87e35e
Date: Thu, 23 May 2019 16:26:15 +0200
87e35e
Subject: [PATCH] Avoid RADEONLeaveVT_KMS() after we left the VT
87e35e
87e35e
RADEONLeaveVT_KMS() will un-reference its all-black FB in a timer, but
87e35e
if we end calling RADEONLeaveVT_KMS() twice in a row, we may try to
87e35e
access those after they've been just freed up, and crash.
87e35e
87e35e
Return early in RADEONLeaveVT_KMS() if the VT semaphore is unset.
87e35e
87e35e
Bugzilla: https://bugzilla.redhat.com/1674474
87e35e
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
87e35e
---
87e35e
 src/radeon_kms.c | 3 +++
87e35e
 1 file changed, 3 insertions(+)
87e35e
87e35e
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
87e35e
index ff4f8dcf..0d4d2ef4 100644
87e35e
--- a/src/radeon_kms.c
87e35e
+++ b/src/radeon_kms.c
87e35e
@@ -2624,6 +2624,9 @@ void RADEONLeaveVT_KMS(ScrnInfoPtr pScrn)
87e35e
     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
87e35e
 		   "RADEONLeaveVT_KMS\n");
87e35e
 
87e35e
+    if (xf86ScreenToScrn(pScreen)->vtSema)
87e35e
+	return;
87e35e
+
87e35e
     if (!info->r600_shadow_fb) {
87e35e
 	RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
87e35e
 	xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
87e35e
-- 
87e35e
2.21.0
87e35e