diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2013-10-05 08:47:03 +0100 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2013-11-23 21:51:55 -0800 |
commit | e7000534a456fdf9cd4eaada3193846c8525f740 (patch) | |
tree | 9841d4845cae2ce8214d183c848efd5bd104e0bd | |
parent | 6d5883bd7e5b765f8f0548501b825d9e56840799 (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.c | 4 |
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); } |