[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: