summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-10-05 08:47:03 +0100
committerKeith Packard <keithp@keithp.com>2013-11-23 21:51:55 -0800
commite7000534a456fdf9cd4eaada3193846c8525f740 (patch)
tree9841d4845cae2ce8214d183c848efd5bd104e0bd
parent6d5883bd7e5b765f8f0548501b825d9e56840799 (diff)
glx/glxdri2: Unwrap EnterVT/LeaveVT upon CloseScreen
In a similar spirit to commit d75e8146c414bfd512ba5dbd4a83acb334bbe19b Author: Keith Packard <keithp@keithp.com> Date: Mon Jul 12 16:01:34 2010 -0700 Unwrap/rewrap EnterVT/LeaveVT completely, Fixes 28998 we need to unwrap our pScrn->EnterVT/LeaveVT hooks around server regeneration or else we cause an infinite recursion on the next VT switch afterwards. Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1235516 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--glx/glxdri2.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
index 1d74c8f5a..fbbd1fd95 100644
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
@@ -371,6 +371,7 @@ __glXDRIscreenDestroy(__GLXscreen * baseScreen)
{
int i;
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(baseScreen->pScreen);
__GLXDRIscreen *screen = (__GLXDRIscreen *) baseScreen;
(*screen->core->destroyScreen) (screen->driScreen);
@@ -385,6 +386,9 @@ __glXDRIscreenDestroy(__GLXscreen * baseScreen)
free(screen->driConfigs);
}
+ pScrn->EnterVT = screen->enterVT;
+ pScrn->LeaveVT = screen->leaveVT;
+
free(screen);
}