From eb5ef29d7a2aef284ad895342adabedaafc558fb Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Thu, 28 Sep 2006 16:38:24 +0000 Subject: [PATCH] * Wed Sep 27 2006 Adam Jackson 1.1.1-43.fc6 - xorg-x11-server-1.1.1-vt-activate-is-a-terrible-api.patch: Since the VT_ACTIVATE/VT_WAITACTIVE pair are never guaranteed to successfully complete, set a 5 second timeout on the WAITACTIVE, and retry the pair until we win. (#207746) - xorg-x11-server-1.1.0-pci-scan-fixes.patch: Partial revert to unbreak some (but not all) domainful machines, including Pegasos. (#207659) --- ...-1.1.1-vt-activate-is-a-terrible-api.patch | 46 +++++++++++++++++++ xorg-x11-server.spec | 14 +++++- 2 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 xorg-x11-server-1.1.1-vt-activate-is-a-terrible-api.patch diff --git a/xorg-x11-server-1.1.1-vt-activate-is-a-terrible-api.patch b/xorg-x11-server-1.1.1-vt-activate-is-a-terrible-api.patch new file mode 100644 index 0000000..a48a419 --- /dev/null +++ b/xorg-x11-server-1.1.1-vt-activate-is-a-terrible-api.patch @@ -0,0 +1,46 @@ +--- xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_init.c.jx 2006-07-05 14:31:41.000000000 -0400 ++++ xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_init.c 2006-09-26 17:53:04.000000000 -0400 +@@ -248,14 +248,37 @@ + #endif + /* + * now get the VT ++ * ++ * There's a race here, in that if someone else does a VT_ACTIVATE ++ * between our ACTIVATE/WAITACTIVE, we might never get the VT. ++ * So, just spin until we do. There's really no fixing this, ++ * it's a racy protocol. + */ +- if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, xf86Info.vtno) < 0) +- xf86Msg(X_WARNING, "xf86OpenConsole: VT_ACTIVATE failed: %s\n", +- strerror(errno)); ++ while (1) { ++ if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, xf86Info.vtno) < 0) ++ FatalError(X_WARNING, ++ "xf86OpenConsole: VT_ACTIVATE failed: %s\n", ++ strerror(errno)); + +- if (ioctl(xf86Info.consoleFd, VT_WAITACTIVE, xf86Info.vtno) < 0) +- xf86Msg(X_WARNING, "xf86OpenConsole: VT_WAITACTIVE failed: %s\n", +- strerror(errno)); ++ ++ alarm(5); ++ if (ioctl(xf86Info.consoleFd, VT_WAITACTIVE, xf86Info.vtno) < 0) ++ { ++ if (errno == EINTR) { ++ /* we lost the race and the alarm fired, try again */ ++ xf86Msg(X_WARNING, ++ "Lost VT_WAITACTIVE race, retrying\n"); ++ continue; ++ } ++ ++ FatalError("xf86OpenConsole: VT_WAITACTIVE failed: %s\n", ++ strerror(errno)); ++ } ++ /* success, turn off the alarm */ ++ alarm(0); ++ ++ break; ++ } + + if (ioctl(xf86Info.consoleFd, VT_GETMODE, &VT) < 0) + FatalError("xf86OpenConsole: VT_GETMODE failed %s\n", diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 15859b3..3822f44 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -3,7 +3,7 @@ Summary: X.Org X11 X server Name: xorg-x11-server Version: 1.1.1 -Release: 42%{?dist} +Release: 43%{?dist} URL: http://www.x.org License: MIT/X11 Group: User Interface/X @@ -12,6 +12,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Source0: ftp://ftp.x.org/pub/individual/xserver/%{pkgname}-%{version}.tar.bz2 Source100: comment-header-modefiles.txt +# general bug fixes Patch0: xorg-x11-server-0.99.3-init-origins-fix.patch # https://bugs.freedesktop.org/show_bug.cgi?id=5093 Patch1: xorg-server-0.99.3-fbmmx-fix-for-non-SSE-cpu.patch @@ -23,6 +24,7 @@ Patch7: xorg-x11-server-1.1.1-xkb-in-xnest.patch Patch8: xorg-x11-server-1.1.1-xvfb-composite-crash.patch Patch9: xorg-x11-server-1.1.1-pclose-confusion.patch Patch10: xorg-x11-server-1.1.1-vbe-filter-less.patch +Patch11: xorg-x11-server-1.1.1-vt-activate-is-a-terrible-api.patch # OpenGL compositing manager feature/optimization patches. Patch100: xorg-x11-server-1.1.0-no-move-damage.patch @@ -345,6 +347,7 @@ drivers, input drivers, or other X modules should install this package. %patch8 -p1 -b .xvfb-render-fix %patch9 -p1 -b .pclose %patch10 -p1 -b .vbe-filter +%patch11 -p1 -b .vt-activate %patch100 -p0 -b .no-move-damage %patch101 -p0 -b .dont-backfill-bg-none @@ -388,7 +391,6 @@ drivers, input drivers, or other X modules should install this package. %patch3016 -p1 -b .pci-paranoia %patch3017 -p1 -b .reduced-blanking - %build #FONTDIR="${datadir}/X11/fonts" #DEFAULT_FONT_PATH="${FONTDIR}/misc:unscaled,${FONTDIR}/TTF/,${FONTDIR}/OTF,${FONTDIR}/Type1/,${FONTDIR}/CID/,${FONTDIR}/100dpi:unscaled,${FONTDIR}/75dpi:unscaled" @@ -717,6 +719,14 @@ rm -rf $RPM_BUILD_ROOT # ------------------------------------------------------------------- %changelog +* Wed Sep 27 2006 Adam Jackson 1.1.1-43.fc6 +- xorg-x11-server-1.1.1-vt-activate-is-a-terrible-api.patch: Since the + VT_ACTIVATE/VT_WAITACTIVE pair are never guaranteed to successfully + complete, set a 5 second timeout on the WAITACTIVE, and retry the pair + until we win. (#207746) +- xorg-x11-server-1.1.0-pci-scan-fixes.patch: Partial revert to unbreak some + (but not all) domainful machines, including Pegasos. (#207659) + * Mon Sep 25 2006 Adam Jackson 1.1.1-42.fc6 - xorg-x11-server-1.1.1-getconfig-pl-die-die-die.patch: Fix XGI cards (#208000)