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 <[EMAIL PROTECTED]>  Fri, 13 Oct 2006 15:36:03 -0400
+ -- David Nusinow <[EMAIL PROTECTED]>  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


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to