[PATCH] xfree86: always enable SIGIO on OsVendorInit (#50957)

Peter Hutterer peter.hutterer at who-t.net
Thu Jun 14 17:18:06 PDT 2012


Drivers call xf86InstallSIGIOHandler() for their fd on DEVICE_ON. That
function does not actually enable the signal if it was blocked to begin
with. As a result, if one vt-switches away from the server (SIGIO is
blocked) and then triggers a server regeneration, the signal remains
blocked and input devices are dead.

Avoid this by always unblocking SIGIO when we start the server.

X.Org Bug 50957 <http://bugs.freedesktop.org/show_bug.cgi?id=50957>

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
An alternative change would be to add this to os/osinit.c but iirc the
xfree86 ddx is the only one that actually needs SIGIO, right?

 hw/xfree86/common/xf86Init.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index ead47cc..dba9eef 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -964,6 +964,7 @@ OsVendorInit(void)
     }
 #endif
 #endif
+    xf86UnblockSIGIO(0);
 
     beenHere = TRUE;
 }
-- 
1.7.10.2



More information about the xorg-devel mailing list