rpms/xorg-x11-server/devel xserver-1.5.2-drain-console.patch, NONE, 1.1 xorg-x11-server.spec, 1.377, 1.378

Adam Jackson ajax at fedoraproject.org
Fri Oct 31 17:34:37 UTC 2008


Author: ajax

Update of /cvs/pkgs/rpms/xorg-x11-server/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv9860

Modified Files:
	xorg-x11-server.spec 
Added Files:
	xserver-1.5.2-drain-console.patch 
Log Message:
* Fri Oct 31 2008 Adam Jackson <ajax at redhat.com> 1.5.2-12
- xserver-1.5.2-drain-console.patch: Silently eat any input we get from the
  tty fd, lest terrible wakeup storms ensue.


xserver-1.5.2-drain-console.patch:

--- NEW FILE xserver-1.5.2-drain-console.patch ---
>From 7a2f6c3d3b1ca39e87ecffd48fd87ab724990f52 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax at redhat.com>
Date: Fri, 31 Oct 2008 12:07:39 -0400
Subject: [PATCH] Drain the vt file descriptor.

Apparently putting it in raw mode makes the kernel think we really
really need the events from it, even if we open it write-only, and if we
don't drain input from it then eventually the kernel starts a wakeup
storm trying to enqueue keystrokes that'll never go anywhere.  Just eat
the data and pretend everything's fine.
---
 hw/xfree86/os-support/linux/lnx_init.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
index 6f68ba5..da5ca57 100644
--- a/hw/xfree86/os-support/linux/lnx_init.c
+++ b/hw/xfree86/os-support/linux/lnx_init.c
@@ -85,6 +85,14 @@ restoreVtPerms(void)
     chown(vtname, vtPermSave[2], vtPermSave[3]);
 }
 
+static void *console_handler;
+
+static void
+drain_console(int fd, void *closure)
+{
+    tcflush(fd, TCIOFLUSH);
+}
+
 void
 xf86OpenConsole(void)
 {
@@ -300,6 +308,10 @@ xf86OpenConsole(void)
 		cfsetispeed(&nTty, 9600);
 		cfsetospeed(&nTty, 9600);
 		tcsetattr(xf86Info.consoleFd, TCSANOW, &nTty);
+
+		/* need to keep the buffer clean, else the kernel gets angry */
+		console_handler = xf86AddGeneralHandler(xf86Info.consoleFd,
+							drain_console, NULL);
 	    }
 
 	    /* we really should have a InitOSInputDevices() function instead
@@ -346,6 +358,11 @@ xf86CloseConsole()
 
     if (ShareVTs) return;
 
+    if (console_handler) {
+	xf86RemoveGeneralHandler(console_handler);
+	console_handler = NULL;
+    };
+
 #if defined(DO_OS_FONTRESTORE)
     if (ioctl(xf86Info.consoleFd, VT_GETSTATE, &vts) < 0)
 	xf86Msg(X_WARNING, "xf86CloseConsole: VT_GETSTATE failed: %s\n",
-- 
1.6.0.3



Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/devel/xorg-x11-server.spec,v
retrieving revision 1.377
retrieving revision 1.378
diff -u -r1.377 -r1.378
--- xorg-x11-server.spec	28 Oct 2008 21:48:22 -0000	1.377
+++ xorg-x11-server.spec	31 Oct 2008 17:34:06 -0000	1.378
@@ -19,7 +19,7 @@
 Summary:   X.Org X11 X server
 Name:      xorg-x11-server
 Version:   1.5.2
-Release:   11%{?dist}
+Release:   12%{?dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X
@@ -97,6 +97,7 @@
 
 # Bug 434807
 Patch6012: xserver-1.5.2-more-sanity-checks.patch
+Patch6013: xserver-1.5.2-drain-console.patch
 
 %define moduledir	%{_libdir}/xorg/modules
 %define drimoduledir	%{_libdir}/dri
@@ -528,6 +529,10 @@
 
 
 %changelog
+* Fri Oct 31 2008 Adam Jackson <ajax at redhat.com> 1.5.2-12
+- xserver-1.5.2-drain-console.patch: Silently eat any input we get from the
+  tty fd, lest terrible wakeup storms ensue.
+
 * Tue Oct 28 2008 Adam Jackson <ajax at redhat.com> 1.5.2-11
 - Un-require mouse and keyboard, we're an evdev shop now
 - Drop some obsoletes from the F7 timeframe




More information about the scm-commits mailing list