X Strike Force X.Org X11 SVN commit: r3754 - in trunk/xserver/xorg-server/debian: . patches
Author: dnusinow
Date: 2006-10-13 16:08:32 -0400 (Fri, 13 Oct 2006)
New Revision: 3754
Added:
trunk/xserver/xorg-server/debian/patches/31_blocksigio.diff
Modified:
trunk/xserver/xorg-server/debian/changelog
trunk/xserver/xorg-server/debian/patches/series
Log:
* Add 31_blocksigio.diff. This patch by Alan Hourihane, and it prevents a
race condition when a driver tries to set the cursor state when the server
is in the middle of switching resolution. Thanks to Frans Pop for
reporting the bug, Michel D?\195?\164nzer for reading through the backtrace and
diagnosing the problem, and Alan for the final patch. Closes: #390646.
Modified: trunk/xserver/xorg-server/debian/changelog
===================================================================
--- trunk/xserver/xorg-server/debian/changelog 2006-10-13 20:01:24 UTC (rev 3753)
+++ trunk/xserver/xorg-server/debian/changelog 2006-10-13 20:08:32 UTC (rev 3754)
@@ -6,8 +6,13 @@
[ David Nusinow ]
* Add depends on xserver-xorg so that /etc/X11/X gets installed. Thanks
Frans Pop. Closes: #392295
+ * Add 31_blocksigio.diff. This patch by Alan Hourihane, and it prevents a
+ race condition when a driver tries to set the cursor state when the server
+ is in the middle of switching resolution. Thanks to Frans Pop for
+ reporting the bug, Michel Dänzer for reading through the backtrace and
+ diagnosing the problem, and Alan for the final patch. Closes: #390646.
- -- David Nusinow <dnusinow@debian.org> Fri, 13 Oct 2006 15:36:03 -0400
+ -- David Nusinow <dnusinow@debian.org> Fri, 13 Oct 2006 16:05:54 -0400
xorg-server (2:1.1.1-9) unstable; urgency=low
Added: trunk/xserver/xorg-server/debian/patches/31_blocksigio.diff
===================================================================
--- trunk/xserver/xorg-server/debian/patches/31_blocksigio.diff (rev 0)
+++ trunk/xserver/xorg-server/debian/patches/31_blocksigio.diff 2006-10-13 20:08:32 UTC (rev 3754)
@@ -0,0 +1,28 @@
+Index: xorg-server/hw/xfree86/common/xf86Cursor.c
+===================================================================
+--- xorg-server.orig/hw/xfree86/common/xf86Cursor.c 2006-09-18 17:27:03.000000000 -0400
++++ xorg-server/hw/xfree86/common/xf86Cursor.c 2006-10-13 16:03:16.000000000 -0400
+@@ -214,6 +214,7 @@
+ ScreenPtr pCursorScreen;
+ Bool Switched;
+ int px, py;
++ int sigstate;
+
+ if (!pScr->vtSema || !mode || !pScr->SwitchMode)
+ return FALSE;
+@@ -233,6 +234,7 @@
+ if (pScreen == pCursorScreen)
+ miPointerPosition(&px, &py);
+
++ sigstate = xf86BlockSIGIO ();
+ xf86EnterServerState(SETUP);
+ Switched = (*pScr->SwitchMode)(pScr->scrnIndex, mode, 0);
+ xf86EnterServerState(OPERATING);
+@@ -270,6 +272,7 @@
+ pScr->frameY1 = pScr->virtualY - 1;
+ }
+ }
++ xf86UnblockSIGIO (sigstate);
+
+ if (pScr->AdjustFrame)
+ (*pScr->AdjustFrame)(pScr->scrnIndex, pScr->frameX0, pScr->frameY0, 0);
Modified: trunk/xserver/xorg-server/debian/patches/series
===================================================================
--- trunk/xserver/xorg-server/debian/patches/series 2006-10-13 20:01:24 UTC (rev 3753)
+++ trunk/xserver/xorg-server/debian/patches/series 2006-10-13 20:08:32 UTC (rev 3754)
@@ -26,3 +26,4 @@
28_mesa_copy_sub_buffer.diff -p0
29_mesa_reseed_makefile.diff -p0
30_fix_vmode_switch.diff
+31_blocksigio.diff
Reply to: