* Fri Oct 31 2008 Adam Jackson <ajax@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.
This commit is contained in:
parent
562c606d9c
commit
dfe451eac3
@ -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 @@ Patch6011: xserver-1.5.2-exa-sync-less.patch
|
||||
|
||||
# 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 @@ rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Oct 31 2008 Adam Jackson <ajax@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@redhat.com> 1.5.2-11
|
||||
- Un-require mouse and keyboard, we're an evdev shop now
|
||||
- Drop some obsoletes from the F7 timeframe
|
||||
|
59
xserver-1.5.2-drain-console.patch
Normal file
59
xserver-1.5.2-drain-console.patch
Normal file
@ -0,0 +1,59 @@
|
||||
From 7a2f6c3d3b1ca39e87ecffd48fd87ab724990f52 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@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
|
||||
|
Loading…
Reference in New Issue
Block a user