r2547 - in trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian: . patches patches/series

Simon Horman horms@costa.debian.org
Thu, 24 Feb 2005 12:08:12 +0100


Author: horms
Date: 2005-02-24 12:08:11 +0100 (Thu, 24 Feb 2005)
New Revision: 2547

Added:
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/121_drm-locking-checks-3.diff
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/141_acpi_pci_probe.diff
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/142_acpi_skip_timer_override.diff
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/143_outs.diff
Modified:
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/changelog
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/series/2.4.27-9
Log:
  * 141_acpi_noirq.patch:
    [ACPI] Enhanced PCI probe, CONFIG_HPET_TIMER build warning fix

  * 142_acpi_skip_timer_override.diff:
    [ACPI] skip_timer_override backport from 2.6
           including early PCI bridge detection.

  * 121_drm-locking-checks-3.diff: LOCK_TEST_WITH_RETURN build cleanup

  * [CAN-2005-0204]: AMD64, allows local users to
    write to privileged IO ports via OUTS instruction

PS: This applies but I have not fully checked the build. 
    I will do so ASAP, but have to step out for the moment.



Modified: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/changelog
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/changelog	2005-02-24 10:07:27 UTC (rev 2546)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/changelog	2005-02-24 11:08:11 UTC (rev 2547)
@@ -26,12 +26,27 @@
 
   * 139_sparc_context_switch.diff: fix FPU context switching dirtiness on
     sparc32 SMP. (Joshua Kwan)
-  
+
   * 140_VM_IO.diff: [CAN-2004-1057] fix possible DoS from accessing freed
     kernel pages by flagging VM_IO where necessary.
 
- -- Joshua Kwan <joshk@triplehelix.org>  Fri, 18 Feb 2005 11:04:10 -0800
+  * 141_acpi_noirq.patch: 
+    [ACPI] Enhanced PCI probe, CONFIG_HPET_TIMER build warning fix
+    (Simon Horman)
 
+  * 142_acpi_skip_timer_override.diff: 
+    [ACPI] skip_timer_override backport from 2.6 
+           including early PCI bridge detection. (Simon Horman)
+
+  * 121_drm-locking-checks-3.diff: LOCK_TEST_WITH_RETURN build cleanup 
+    (Simon Horman)
+
+  * [CAN-2005-0204]: AMD64, allows local users to
+    write to privileged IO ports via OUTS instruction
+    (Simon Horman)
+
+ -- Simon Horman <horms@debian.org>  Thu, 24 Feb 2005 15:53:42 +0900
+
 kernel-source-2.4.27 (2.4.27-8) unstable; urgency=high
 
   * add dh_fixperms to the build targets to kernel-patch-debian-2.4.27

Added: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/121_drm-locking-checks-3.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/121_drm-locking-checks-3.diff	2005-02-24 10:07:27 UTC (rev 2546)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/121_drm-locking-checks-3.diff	2005-02-24 11:08:11 UTC (rev 2547)
@@ -0,0 +1,156 @@
+diff -pru kernel-source-2.4.27.filp/drivers/char/drm/drmP.h kernel-source-2.4.27/drivers/char/drm/drmP.h
++++ kernel-source-2.4.27.filp/drivers/char/drm/drmP.h	2005-02-24 16:10:43.000000000 +0900
+--- kernel-source-2.4.27/drivers/char/drm/drmP.h	2005-01-19 18:57:58.000000000 +0900
+@@ -336,7 +336,7 @@ do {									\
+ 	(_map) = (_dev)->context_sareas[_ctx];		\
+ } while(0)
+ 
++#define LOCK_TEST_WITH_RETURN( dev )					\
+-#define LOCK_TEST_WITH_RETURN( dev, filp )				\
+ do {									\
+ 	if ( !_DRM_LOCK_IS_HELD( dev->lock.hw_lock->lock ) ||		\
+ 	     dev->lock.pid != current->pid ) {				\
+diff -pru kernel-source-2.4.27.filp/drivers/char/drm/i810_dma.c kernel-source-2.4.27/drivers/char/drm/i810_dma.c
++++ kernel-source-2.4.27.filp/drivers/char/drm/i810_dma.c	2005-02-24 16:15:07.000000000 +0900
+--- kernel-source-2.4.27/drivers/char/drm/i810_dma.c	2005-01-19 18:57:58.000000000 +0900
+@@ -952,7 +952,7 @@ int i810_flush_ioctl(struct inode *inode
+    	drm_file_t	  *priv	  = filp->private_data;
+    	drm_device_t	  *dev	  = priv->dev;
+ 
++	LOCK_TEST_WITH_RETURN( dev );
+-	LOCK_TEST_WITH_RETURN( dev, filp );
+ 
+    	i810_flush_queue(dev);
+    	return 0;
+@@ -974,7 +974,7 @@ int i810_dma_vertex(struct inode *inode,
+ 	if (copy_from_user(&vertex, (drm_i810_vertex_t *)arg, sizeof(vertex)))
+ 		return -EFAULT;
+ 
++	LOCK_TEST_WITH_RETURN( dev );
+-	LOCK_TEST_WITH_RETURN( dev, filp );
+ 
+ 	if(vertex.idx < 0 || vertex.idx > dma->buf_count) return -EINVAL;
+ 
+@@ -1002,7 +1002,7 @@ int i810_clear_bufs(struct inode *inode,
+    	if (copy_from_user(&clear, (drm_i810_clear_t *)arg, sizeof(clear)))
+ 		return -EFAULT;
+ 
++	LOCK_TEST_WITH_RETURN( dev );
+-	LOCK_TEST_WITH_RETURN( dev, filp );
+ 
+  	/* GH: Someone's doing nasty things... */
+  	if (!dev->dev_private) {
+@@ -1022,7 +1022,7 @@ int i810_swap_bufs(struct inode *inode, 
+ 	drm_device_t *dev = priv->dev;
+ 
+ 
++	LOCK_TEST_WITH_RETURN( dev ); 
+-	LOCK_TEST_WITH_RETURN( dev, filp ); 
+ 
+ 	i810_dma_dispatch_swap( dev );
+    	return 0;
+@@ -1057,7 +1057,7 @@ int i810_getbuf(struct inode *inode, str
+    	if (copy_from_user(&d, (drm_i810_dma_t *)arg, sizeof(d)))
+ 		return -EFAULT;
+ 
++	LOCK_TEST_WITH_RETURN( dev ); 
+-	LOCK_TEST_WITH_RETURN( dev, filp ); 
+ 
+ 	d.granted = 0;
+ 
+@@ -1165,7 +1165,7 @@ int i810_dma_mc(struct inode *inode, str
+ 		return -EFAULT;
+ 
+ 
++	LOCK_TEST_WITH_RETURN( dev ); 
+-	LOCK_TEST_WITH_RETURN( dev, filp ); 
+ 
+ 	i810_dma_dispatch_mc(dev, dma->buflist[mc.idx], mc.used,
+ 		mc.last_render );
+@@ -1210,7 +1210,7 @@ int i810_fstatus(struct inode *inode, st
+ 	drm_device_t *dev = priv->dev;
+ 	drm_i810_private_t *dev_priv = (drm_i810_private_t *)dev->dev_private;
+ 
++	LOCK_TEST_WITH_RETURN( dev ); 
+-	LOCK_TEST_WITH_RETURN( dev, filp ); 
+ 	return I810_READ(0x30008);
+ }
+ 
+@@ -1221,7 +1221,7 @@ int i810_ov0_flip(struct inode *inode, s
+ 	drm_device_t *dev = priv->dev;
+ 	drm_i810_private_t *dev_priv = (drm_i810_private_t *)dev->dev_private;
+ 
++	LOCK_TEST_WITH_RETURN( dev ); 
+-	LOCK_TEST_WITH_RETURN( dev, filp ); 
+ 
+ 	//Tell the overlay to update
+ 	I810_WRITE(0x30000,dev_priv->overlay_physical | 0x80000000);
+diff -pru kernel-source-2.4.27.filp/drivers/char/drm/i830_dma.c kernel-source-2.4.27/drivers/char/drm/i830_dma.c
++++ kernel-source-2.4.27.filp/drivers/char/drm/i830_dma.c	2005-02-24 16:16:44.000000000 +0900
+--- kernel-source-2.4.27/drivers/char/drm/i830_dma.c	2005-01-19 18:57:58.000000000 +0900
+@@ -1330,7 +1330,7 @@ int i830_flush_ioctl(struct inode *inode
+    	drm_file_t	  *priv	  = filp->private_data;
+    	drm_device_t	  *dev	  = priv->dev;
+ 
++	LOCK_TEST_WITH_RETURN( dev ); 
+-	LOCK_TEST_WITH_RETURN( dev, filp ); 
+ 
+    	i830_flush_queue(dev);
+    	return 0;
+@@ -1351,7 +1351,7 @@ int i830_dma_vertex(struct inode *inode,
+ 	if (copy_from_user(&vertex, (drm_i830_vertex_t *)arg, sizeof(vertex)))
+ 		return -EFAULT;
+ 
++	LOCK_TEST_WITH_RETURN( dev ); 
+-	LOCK_TEST_WITH_RETURN( dev, filp ); 
+ 
+ 	DRM_DEBUG("i830 dma vertex, idx %d used %d discard %d\n",
+ 		  vertex.idx, vertex.used, vertex.discard);
+@@ -1378,7 +1378,7 @@ int i830_clear_bufs(struct inode *inode,
+    	if (copy_from_user(&clear, (drm_i830_clear_t *)arg, sizeof(clear)))
+ 		return -EFAULT;
+    
++	LOCK_TEST_WITH_RETURN( dev ); 
+-	LOCK_TEST_WITH_RETURN( dev, filp ); 
+ 
+ 	/* GH: Someone's doing nasty things... */
+ 	if (!dev->dev_private) {
+@@ -1400,7 +1400,7 @@ int i830_swap_bufs(struct inode *inode, 
+    
+ 	DRM_DEBUG("i830_swap_bufs\n");
+ 
++	LOCK_TEST_WITH_RETURN( dev ); 
+-	LOCK_TEST_WITH_RETURN( dev, filp ); 
+ 
+ 	i830_dma_dispatch_swap( dev );
+    	return 0;
+@@ -1441,7 +1441,7 @@ int i830_flip_bufs(struct inode *inode, 
+ 
+ 	DRM_DEBUG("%s\n", __FUNCTION__);
+ 
++	LOCK_TEST_WITH_RETURN( dev ); 
+-	LOCK_TEST_WITH_RETURN( dev, filp ); 
+ 
+ 	if (!dev_priv->page_flipping) 
+ 		i830_do_init_pageflip( dev );
+@@ -1480,7 +1480,7 @@ int i830_getbuf(struct inode *inode, str
+    	if (copy_from_user(&d, (drm_i830_dma_t *)arg, sizeof(d)))
+ 		return -EFAULT;
+    
++	LOCK_TEST_WITH_RETURN( dev ); 
+-	LOCK_TEST_WITH_RETURN( dev, filp ); 
+ 	
+ 	d.granted = 0;
+ 
+diff -pru kernel-source-2.4.27.filp/drivers/char/drm/i830_irq.c kernel-source-2.4.27/drivers/char/drm/i830_irq.c
++++ kernel-source-2.4.27.filp/drivers/char/drm/i830_irq.c	2005-02-24 16:15:15.000000000 +0900
+--- kernel-source-2.4.27/drivers/char/drm/i830_irq.c	2005-01-19 18:57:58.000000000 +0900
+@@ -130,7 +130,7 @@ int i830_irq_emit( struct inode *inode, 
+ 	drm_i830_irq_emit_t emit;
+ 	int result;
+ 
++	LOCK_TEST_WITH_RETURN( dev ); 
+-	LOCK_TEST_WITH_RETURN( dev, filp ); 
+ 
+ 	if ( !dev_priv ) {
+ 		DRM_ERROR( "%s called with no initialization\n", __FUNCTION__ );

Added: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/141_acpi_pci_probe.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/141_acpi_pci_probe.diff	2005-02-24 10:07:27 UTC (rev 2546)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/141_acpi_pci_probe.diff	2005-02-24 11:08:11 UTC (rev 2547)
@@ -0,0 +1,113 @@
+# origin: len.brown (BitKeeper)
+# cset: 1.1359.6.16 (2.4) key=409aa728UHRpewvye143Qs7cY5xn2Q
+# URL: http://linux.bkbits.net:8080/linux-2.4/gnupatch@409aa728UHRpewvye143Qs7cY5xn2Q
+# inclusion: upstream
+# descrition: Enhanced PCI probe (David Shaohua Li)
+# revision date: Thu, 24 Feb 2005 13:54:46 +0900
+#
+# S rset: ChangeSet|1.1359.6.15..1.1359.6.16
+# I rset: drivers/acpi/pci_root.c|1.7..1.8
+# D rset: include/asm-i386/acpi.h|1.16..1.17
+# D rset: arch/x86_64/kernel/setup.c|1.12..1.13
+# D rset: arch/x86_64/kernel/e820.c|1.20..1.21
+# D rset: drivers/acpi/bus.c|1.27..1.28
+# D rset: arch/x86_64/kernel/pci-pc.c|1.8..1.9
+# R rset: include/asm-x86_64/acpi.h|1.13..1.14
+# D rset: arch/i386/kernel/acpi.c|1.29..1.30
+# D rset: arch/x86_64/kernel/acpi.c|1.17..1.19
+# D rset: Documentation/kernel-parameters.txt|1.15..1.16
+#
+# Key:
+# S: Skipped  ChangeSet file only
+# O: Original Followed by Updated
+# U: Updated  Included with updated range of versions
+# I: Included Included verbatim
+# E: Excluded Excluded on request from user
+# D: Deleted  Manually deleted by subsequent user edit
+# R: Revised  Manually revised by subsequent user edit
+#
+#
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+#   2004/05/06 16:59:20-04:00 len.brown@intel.com 
+#   [ACPI] enhance "pci=noacpi" to skip PCI probe (David Shaohua Li)
+#   add "acpi=noirq" to just disable IRQ config
+#   http://bugzilla.kernel.org/show_bug.cgi?id=1662
+# 
+# include/asm-x86_64/acpi.h
+#   2004/05/06 16:59:18-04:00 len.brown@intel.com +25 -16
+#   enhance pci=noacpi to skip PCI probe, use acpi=noirq to just disable IRQ config
+# 
+# include/asm-i386/acpi.h
+#   2004/05/06 16:59:18-04:00 len.brown@intel.com +23 -13
+#   enhance pci=noacpi to skip PCI probe, use acpi=noirq to just disable IRQ config
+# 
+# drivers/acpi/pci_root.c
+#   2004/05/06 16:59:18-04:00 len.brown@intel.com +9 -0
+#   enhance pci=noacpi to skip PCI probe, use acpi=noirq to just disable IRQ config
+# 
+# drivers/acpi/bus.c
+#   2004/05/06 16:59:18-04:00 len.brown@intel.com +4 -2
+#   enhance pci=noacpi to skip PCI probe, use acpi=noirq to just disable IRQ config
+# 
+# arch/x86_64/kernel/setup.c
+#   2004/05/06 16:59:18-04:00 len.brown@intel.com +2 -5
+#   enhance pci=noacpi to skip PCI probe, use acpi=noirq to just disable IRQ config
+# 
+# arch/x86_64/kernel/pci-pc.c
+#   2004/05/06 16:59:18-04:00 len.brown@intel.com +1 -1
+#   enhance pci=noacpi to skip PCI probe, use acpi=noirq to just disable IRQ config
+# 
+# arch/x86_64/kernel/e820.c
+#   2004/05/06 16:59:18-04:00 len.brown@intel.com +3 -3
+#   enhance pci=noacpi to skip PCI probe, use acpi=noirq to just disable IRQ config
+# 
+# arch/x86_64/kernel/acpi.c
+#   2004/05/06 16:59:18-04:00 len.brown@intel.com +4 -1
+#   enhance pci=noacpi to skip PCI probe, use acpi=noirq to just disable IRQ config
+# 
+# arch/i386/kernel/acpi.c
+#   2004/05/06 16:59:18-04:00 len.brown@intel.com +4 -1
+#   enhance pci=noacpi to skip PCI probe, use acpi=noirq to just disable IRQ config
+# 
+# arch/x86_64/kernel/acpi.c
+#   2004/05/05 02:20:28-04:00 len.brown@intel.com +4 -1
+#   CONFIG_HPET_TIMER for build warning
+# 
+# Documentation/kernel-parameters.txt
+#   2004/05/04 16:35:45-04:00 len.brown@intel.com +3 -2
+#   add acpi=noirq
+# 
+#
+===== drivers/acpi/pci_root.c =====
+diff -pruN ./drivers/acpi/pci_root.c.orig ./drivers/acpi/pci_root.c
+--- ./drivers/acpi/pci_root.c.orig	2004-08-08 08:26:04.000000000 +0900
++++ ./drivers/acpi/pci_root.c	2005-02-24 16:26:22.000000000 +0900
+@@ -223,6 +223,14 @@ acpi_pci_root_add (
+ 	/* Some systems have wrong _BBN */
+ 	list_for_each_entry(tmp, &acpi_pci_roots, node) {
+ 		if ((tmp->id.segment == root->id.segment)
++				&& (tmp->id.bus == root->id.bus))
++			ACPI_DEBUG_PRINT((ACPI_DB_ERROR, 
++				"Wrong _BBN value, please reboot and using option 'pci=noacpi'\n"));
++	}
++
++	/* Some systems have wrong _BBN */
++	list_for_each_entry(tmp, &acpi_pci_roots, node) {
++		if ((tmp->id.segment == root->id.segment)
+ 				&& (tmp->id.bus == root->id.bus)) {
+ 			int bus = 0;
+ 			acpi_status status;
+===== drivers/acpi/pci_root.c =====
+--- ./arch/x86_64/kernel/acpi.c.orig	2004-08-08 08:26:04.000000000 +0900
++++ ./arch/x86_64/kernel/acpi.c	2005-02-24 16:26:34.000000000 +0900
+@@ -342,7 +342,7 @@ acpi_parse_int_src_ovr (
+ 	return 0;
+ }
+ 
+-
++#ifdef CONFIG_HPET_TIMER
+ static int __init
+ acpi_parse_nmi_src (
+ 	acpi_table_entry_header *header)

Added: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/142_acpi_skip_timer_override.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/142_acpi_skip_timer_override.diff	2005-02-24 10:07:27 UTC (rev 2546)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/142_acpi_skip_timer_override.diff	2005-02-24 11:08:11 UTC (rev 2547)
@@ -0,0 +1,219 @@
+# origin: Zwane Mwaikambo (lkml), Edward Miller (debian-kernel)
+# inclusion: pending
+# descrition: [ACPI] skip_timer_override backport from 2.6 including early PCI bridge detection.
+# revision date: Thu, 24 Feb 2005 13:54:46 +0900
+#
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+#   2005/02/18 07:53:21-07:00 zwane@montezuma.fsmlabs.com 
+#   ACPI skip_timer_override backport from 2.6 including early PCI bridge detection.
+# 
+# include/asm-x86_64/acpi.h
+#   2005/02/18 07:53:18-07:00 zwane@montezuma.fsmlabs.com +1 -0
+#   ACPI skip_timer_override backport from 2.6 including early PCI bridge detection.
+# 
+# include/asm-i386/pci-direct.h
+#   2005/02/18 07:53:18-07:00 zwane@montezuma.fsmlabs.com +1 -0
+#   ACPI skip_timer_override backport from 2.6 including early PCI bridge detection.
+# 
+# include/asm-i386/acpi.h
+#   2005/02/18 07:53:18-07:00 zwane@montezuma.fsmlabs.com +2 -0
+#   ACPI skip_timer_override backport from 2.6 including early PCI bridge detection.
+# 
+# arch/x86_64/kernel/io_apic.c
+#   2005/02/18 07:53:18-07:00 zwane@montezuma.fsmlabs.com +7 -3
+#   ACPI skip_timer_override backport from 2.6 including early PCI bridge detection.
+# 
+# arch/x86_64/kernel/acpi.c
+#   2005/02/18 07:53:18-07:00 zwane@montezuma.fsmlabs.com +7 -0
+#   ACPI skip_timer_override backport from 2.6 including early PCI bridge detection.
+# 
+# arch/i386/kernel/earlyquirk.c
+#   2005/02/18 07:53:18-07:00 zwane@montezuma.fsmlabs.com +53 -0
+#   ACPI skip_timer_override backport from 2.6 including early PCI bridge detection.
+# 
+# arch/i386/kernel/acpi.c
+#   2005/02/18 07:53:18-07:00 zwane@montezuma.fsmlabs.com +9 -0
+#   ACPI skip_timer_override backport from 2.6 including early PCI bridge detection.
+# 
+# arch/i386/kernel/Makefile
+#   2005/02/18 07:53:18-07:00 zwane@montezuma.fsmlabs.com +1 -1
+#   ACPI skip_timer_override backport from 2.6 including early PCI bridge detection.
+# 
+diff -Nru a/arch/i386/kernel/Makefile b/arch/i386/kernel/Makefile
+--- a/arch/i386/kernel/Makefile	2005-02-24 20:01:29.000000000 +0900
++++ b/arch/i386/kernel/Makefile.noedit	2005-02-24 20:03:40.000000000 +0900
+@@ -36,7 +36,7 @@
+ obj-$(CONFIG_X86_CPUID)		+= cpuid.o
+ obj-$(CONFIG_MICROCODE)		+= microcode.o
+ obj-$(CONFIG_APM)		+= apm.o
+-obj-$(CONFIG_ACPI_BOOT)		+= acpi.o earlyquirk.o
++obj-$(CONFIG_ACPI_BOOT)		+= acpi.o
+ obj-$(CONFIG_ACPI_SLEEP)	+= acpi_wakeup.o
+ obj-$(CONFIG_SMP)		+= smp.o smpboot.o trampoline.o
+ obj-$(CONFIG_X86_LOCAL_APIC)	+= mpparse.o apic.o nmi.o
+ 
+diff -Nru a/arch/i386/kernel/acpi.c b/arch/i386/kernel/acpi.c
+--- a/arch/i386/kernel/acpi.c	2005-02-18 07:53:58 -07:00
++++ b/arch/i386/kernel/acpi.c	2005-02-18 07:53:58 -07:00
+@@ -55,6 +55,7 @@
+ 
+ acpi_interrupt_flags acpi_sci_flags __initdata;
+ int acpi_sci_override_gsi __initdata;
++int acpi_skip_timer_override __initdata;
+ /* --------------------------------------------------------------------------
+                               Boot-time Configuration
+    -------------------------------------------------------------------------- */
+@@ -320,6 +321,12 @@
+ 		return 0;
+ 	}
+ 
++	if (acpi_skip_timer_override &&
++		intsrc->bus_irq == 0 && intsrc->global_irq == 2) {
++		printk(PREFIX "BIOS IRQ0 pin2 override ignored.\n");
++		return 0;
++	}
++
+ 	mp_override_legacy_irq (
+ 		intsrc->bus_irq,
+ 		intsrc->flags.polarity,
+@@ -433,6 +440,8 @@
+ 		return result;
+ 	}
+ 
++	check_acpi_pci();
++	
+ 	result = acpi_blacklisted();
+ 	if (result) {
+ 		printk(KERN_NOTICE PREFIX "BIOS listed in blacklist, disabling ACPI support\n");
+diff -Nru a/arch/i386/kernel/earlyquirk.c b/arch/i386/kernel/earlyquirk.c
+--- a/arch/i386/kernel/earlyquirk.c	2005-02-18 07:53:58 -07:00
++++ b/arch/i386/kernel/earlyquirk.c	2005-02-18 07:53:58 -07:00
+@@ -0,0 +1,53 @@
++/* 
++ * Do early PCI probing for bug detection when the main PCI subsystem is 
++ * not up yet.
++ */
++#include <linux/init.h>
++#include <linux/kernel.h>
++#include <linux/pci.h>
++#include <asm/pci-direct.h>
++#include <asm/acpi.h>
++
++#ifdef CONFIG_ACPI
++static int __init check_bridge(int vendor, int device) 
++{
++	/* According to Nvidia all timer overrides are bogus. Just ignore
++	   them all. */
++	if (vendor == PCI_VENDOR_ID_NVIDIA) { 
++		acpi_skip_timer_override = 1; 		
++	}
++	return 0;
++}
++   
++void __init check_acpi_pci(void) 
++{ 
++	int num,slot,func; 
++
++	/* Assume the machine supports type 1. If not it will 
++	   always read ffffffff and should not have any side effect. */
++
++	/* Poor man's PCI discovery */
++	for (num = 0; num < 32; num++) { 
++		for (slot = 0; slot < 32; slot++) { 
++			for (func = 0; func < 8; func++) { 
++				u32 class;
++				u32 vendor;
++				class = read_pci_config(num,slot,func,
++							PCI_CLASS_REVISION);
++				if (class == 0xffffffff)
++					break; 
++
++				if ((class >> 16) != PCI_CLASS_BRIDGE_PCI)
++					continue; 
++				
++				vendor = read_pci_config(num, slot, func, 
++							 PCI_VENDOR_ID);
++				
++				if (check_bridge(vendor&0xffff, vendor >> 16))
++					return; 
++			} 
++			
++		}
++	}
++}
++#endif /* CONFIG_ACPI */
+diff -Nru a/arch/x86_64/kernel/acpi.c b/arch/x86_64/kernel/acpi.c
+--- a/arch/x86_64/kernel/acpi.c	2005-02-18 07:53:58 -07:00
++++ b/arch/x86_64/kernel/acpi.c	2005-02-18 07:53:58 -07:00
+@@ -53,6 +53,7 @@
+ 
+ acpi_interrupt_flags acpi_sci_flags __initdata;
+ int acpi_sci_override_gsi __initdata;
++int acpi_skip_timer_override __initdata;
+ /* --------------------------------------------------------------------------
+                               Boot-time Configuration
+    -------------------------------------------------------------------------- */
+@@ -330,6 +331,12 @@
+ 	if (intsrc->bus_irq == acpi_fadt.sci_int) {
+ 		acpi_sci_ioapic_setup(intsrc->global_irq,
+ 			intsrc->flags.polarity, intsrc->flags.trigger);
++		return 0;
++	}
++
++	if (acpi_skip_timer_override &&
++		intsrc->bus_irq == 0 && intsrc->global_irq == 2) {
++		printk(PREFIX "BIOS IRQ0 pin2 override ignored.\n");
+ 		return 0;
+ 	}
+ 
+diff -Nru a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c
+--- a/arch/x86_64/kernel/io_apic.c	2005-02-18 07:53:58 -07:00
++++ b/arch/x86_64/kernel/io_apic.c	2005-02-18 07:53:58 -07:00
+@@ -259,10 +259,14 @@
+ 				case PCI_VENDOR_ID_VIA:
+ 					return;
+ 				case PCI_VENDOR_ID_NVIDIA: 
++#ifdef CONFIG_ACPI
++				/* All timer overrides on Nvidia
++				   seem to be wrong. Skip them. */
++					acpi_skip_timer_override = 1;
+ 					printk(KERN_INFO 
+-     "PCI bridge %02x:%02x from %x found. Setting \"noapic\". Overwrite with \"apic\"\n",
+-					       num,slot,vendor); 
+-					skip_ioapic_setup = 1;
++			"Nvidia board detected. Ignoring ACPI timer override.\n");
++#endif
++					/* RED-PEN skip them on mptables too? */
+ 					return;
+ 				} 
+ 
+diff -Nru a/include/asm-i386/acpi.h b/include/asm-i386/acpi.h
+--- a/include/asm-i386/acpi.h	2005-02-18 07:53:58 -07:00
++++ b/include/asm-i386/acpi.h	2005-02-18 07:53:58 -07:00
+@@ -121,6 +121,8 @@
+ extern int acpi_strict;
+ extern int acpi_disabled;
+ extern int acpi_ht;
++extern int acpi_skip_timer_override;
++void __init check_acpi_pci(void);
+ static inline void disable_acpi(void) 
+ { 
+ 	acpi_disabled = 1;
+diff -Nru a/include/asm-i386/pci-direct.h b/include/asm-i386/pci-direct.h
+--- a/include/asm-i386/pci-direct.h	2005-02-18 07:53:58 -07:00
++++ b/include/asm-i386/pci-direct.h	2005-02-18 07:53:58 -07:00
+@@ -0,0 +1 @@
++#include "asm-x86_64/pci-direct.h"
+diff -Nru a/include/asm-x86_64/acpi.h b/include/asm-x86_64/acpi.h
+--- a/include/asm-x86_64/acpi.h	2005-02-18 07:53:58 -07:00
++++ b/include/asm-x86_64/acpi.h	2005-02-18 07:53:58 -07:00
+@@ -118,6 +118,7 @@
+ extern int acpi_strict;
+ extern int acpi_disabled;
+ extern int acpi_ht;
++extern int acpi_skip_timer_override;
+ static inline void disable_acpi(void) 
+ { 
+ 	acpi_disabled = 1;

Added: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/143_outs.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/143_outs.diff	2005-02-24 10:07:27 UTC (rev 2546)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/143_outs.diff	2005-02-24 11:08:11 UTC (rev 2547)
@@ -0,0 +1,24 @@
+#! /bin/sh -e 
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [CAN-2005-0204]: AMD64, allows local users to write to privileged IO ports via OUTS instruction
+## DP: Patch author: Suresh Siddha (suresh.b.siddha@intel.com)
+## DP: Upstream status: unknown
+## DP: URL: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=146244
+## DP: Patch source: Micah Anderson <micah@riseup.net> (debian-kernel)
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+--- a/include/asm-x86_64/desc.h	2005-02-24 19:51:26.000000000 +0900
++++ b/include/asm-x86_64/desc.h	2005-02-24 19:52:40.000000000 +0900
+@@ -128,7 +128,7 @@
+ 
+ static inline void set_tss_desc(unsigned n, void *addr)
+ { 
+-	set_tssldt_descriptor((void *)&gdt_table + __CPU_DESC_INDEX(n,tss), (unsigned long)addr, DESC_TSS, sizeof(struct tss_struct)); 
++	set_tssldt_descriptor((void *)&gdt_table + __CPU_DESC_INDEX(n,tss), (unsigned long)addr, DESC_TSS, IO_BITMAP_OFFSET + IO_BITMAP_BYTES + 7); 
+ } 
+ 
+ static inline void set_ldt_desc(unsigned n, void *addr, int size)

Modified: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/series/2.4.27-9
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/series/2.4.27-9	2005-02-24 10:07:27 UTC (rev 2546)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/series/2.4.27-9	2005-02-24 11:08:11 UTC (rev 2547)
@@ -5,3 +5,7 @@
 + 138_amd64_syscall_vuln.diff
 + 139_sparc_context_switch.diff
 + 140_VM_IO.diff
++ 141_acpi_pci_probe.diff
++ 142_acpi_skip_timer_override.diff
++ 121_drm-locking-checks-3.diff
++ 143_outs.diff