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