xorg-server: Changes to 'debian-unstable'
debian/changelog | 7 +++
debian/patches/24_hurd_ioperm_fix.diff | 64 +++++++++++++++++++++++++++++++++
debian/patches/series | 1
3 files changed, 72 insertions(+)
New commits:
commit 6d548942f58f6e6ff0ac89f82100c0bb056d9499
Author: Brice Goglin <Brice.Goglin@ens-lyon.org>
Date: Fri May 11 02:45:25 2007 +0200
Add 24_hurd_ioperm_fix.diff to fix xf86Enable/DisableIO on Hurd with recent GNU Mach.
diff --git a/debian/changelog b/debian/changelog
index 63eb057..c38ff5e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xorg-server (2:1.3.0.0.dfsg-5) UNRELEASED; urgency=low
+
+ * Add 24_hurd_ioperm_fix.diff to fix xf86Enable/DisableIO on Hurd with
+ recent GNU Mach. Thanks Samuel Thibault!
+
+ -- Brice Goglin <Brice.Goglin@ens-lyon.org> Fri, 11 May 2007 02:37:19 +0200
+
xorg-server (2:1.3.0.0.dfsg-4) unstable; urgency=low
* Cherry-pick patch from upstream git to fix security issue in the Xrender
diff --git a/debian/patches/24_hurd_ioperm_fix.diff b/debian/patches/24_hurd_ioperm_fix.diff
new file mode 100644
index 0000000..d2ff452
--- /dev/null
+++ b/debian/patches/24_hurd_ioperm_fix.diff
@@ -0,0 +1,64 @@
+--- a/hw/xfree86/os-support/hurd/hurd_video.c.orig 2007-05-08 18:28:21.000842117 +0000
++++ b/hw/xfree86/os-support/hurd/hurd_video.c 2007-05-08 18:27:37.000381314 +0000
+@@ -117,49 +117,29 @@
+ /**************************************************************************
+ * I/O Permissions section
+ ***************************************************************************/
+-mach_port_t io_port;
++
++/*
++ * Due to conflicts with "compiler.h", don't rely on <sys/io.h> to declare
++ * this.
++ */
++extern int ioperm(unsigned long __from, unsigned long __num, int __turn_on);
+
+ Bool
+ xf86EnableIO()
+ {
+- mach_port_t device;
+- kern_return_t err;
+-
+- err = get_privileged_ports(NULL, &device);
+- if( err )
+- {
+- errno = err;
+- FatalError("xf86EnableIO() can't get_privileged_ports. (%s)\n",strerror(errno));
+- }
+- err = device_open(device,D_READ|D_WRITE,"io",&io_port);
+- mach_port_deallocate(mach_task_self(), device);
+- if( err )
+- {
+- errno = err;
+- FatalError("xf86EnableIO() can't device_open. (%s)\n",strerror(errno));
+- }
+-
+- err = i386_io_port_add(mach_thread_self (), io_port);
+- if( err )
+- {
+- errno = err;
+- FatalError("xf86EnableIO() can't i386_io_port_add.(io_port) (%s)\n",strerror(errno));
++ if (ioperm(0, 0xffff, 1)) {
++ FatalError("xf86EnableIO: ioperm() failed (%s)\n", strerror(errno));
++ return FALSE;
+ }
++ ioperm(0x40,4,0); /* trap access to the timer chip */
++ ioperm(0x60,4,0); /* trap access to the keyboard controller */
+ return TRUE;
+ }
+
+ void
+ xf86DisableIO()
+ {
+- kern_return_t err;
+-
+- err = i386_io_port_remove(mach_thread_self (), io_port);
+- if( err )
+- {
+- errno = err;
+- FatalError("xf86DisableIO() can't i386_io_port_remove.(io_port) (%s)\n",strerror(errno));
+- }
+- mach_port_deallocate(mach_task_self(), io_port);
++ ioperm(0,0xffff,0);
+ return;
+ }
+
diff --git a/debian/patches/series b/debian/patches/series
index e5b2a45..0a454ae 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -12,6 +12,7 @@
16_s390_fix.diff
21_glx_align_fixes.patch
23_kfreebsd_support.diff
+24_hurd_ioperm_fix.diff
32_disable_sparc_pci_bridge.diff
34_xorg.conf_man_typos.patch
39_alpha_build_flags.patch -p0
Reply to: