[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#296639: marked as done (kernel-source-2.4.27: nforce[23] backport of acpi_skip_timer_override)



Your message dated Sat, 26 Mar 2005 01:47:47 -0500
with message-id <E1DF55H-0002FS-00@newraff.debian.org>
and subject line Bug#296639: fixed in kernel-source-2.4.27 2.4.27-9
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--------------------------------------
Received: (at submit) by bugs.debian.org; 23 Feb 2005 18:05:50 +0000
>From bugzilla@emiller.f2s.com Wed Feb 23 10:05:49 2005
Return-path: <bugzilla@emiller.f2s.com>
Received: from outmail1.freedom2surf.net (outmail.freedom2surf.net) [194.106.33.237] 
	by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
	id 1D40tQ-00005k-00; Wed, 23 Feb 2005 10:05:48 -0800
Received: from hawea.lakes (i-195-137-64-4.freedom2surf.net [195.137.64.4])
	by outmail.freedom2surf.net (8.12.10/8.12.10) with ESMTP id j1NI5knG001643
	(version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NO)
	for <submit@bugs.debian.org>; Wed, 23 Feb 2005 18:05:47 GMT
Received: from debianed by hawea.lakes with local (Exim 4.34)
	id 1D41RP-0001UN-I6
	for submit@bugs.debian.org; Wed, 23 Feb 2005 18:40:55 +0000
Content-Type: multipart/mixed; boundary="===============1287838159=="
MIME-Version: 1.0
From: Edward Miller <bugzilla@emiller.f2s.com>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: kernel-source-2.4.27: nforce[23] backport of acpi_skip_timer_override
X-Mailer: reportbug 3.8
Date: Wed, 23 Feb 2005 18:40:55 +0000
Message-Id: <E1D41RP-0001UN-I6@hawea.lakes>
Delivered-To: submit@bugs.debian.org
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02 
	(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Status: No, hits=-8.0 required=4.0 tests=BAYES_00,HAS_PACKAGE 
	autolearn=no version=2.60-bugs.debian.org_2005_01_02
X-Spam-Level: 

This is a multi-part MIME message sent by reportbug.

--===============1287838159==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Package: kernel-source-2.4.27
Version: 2.4.27-8
Severity: normal
Tags: patch

The 2.6 kernel series has, since 2.6.5, had a fix for an erroneous timer
override present in many BIOSes in nforce[23] chipsets. The 2.4 series
is missing this, resulting in an XT_PIC timer on systems that have an
APIC-enabled kernel. This is believed to cause system instability,
including hard lock-ups (with no ssh). At my request, Zwane Mwaikambo
has kindly backported the fix for 2.4.30 and Ihave found that this patch
works almost unaltered on Debian's kernel-source-2.4.27. Bearing in mind
the proximity of Sarge's release and especially d-i rc3, I thought I
should send you the patch for review now.

Maybe this will have to be a post-Sarge item but there is a lot of
cheap nforce2 out there and 2.6.8 may not be suitable for everyone so I
hope you can consider this patch for inclusion in Sarge's 2.4.27.


-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.4.27.20050219.0
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages kernel-source-2.4.27 depends on:
ii  binutils                      2.15-5     The GNU assembler, linker and bina
ii  bzip2                         1.0.2-1    A high-quality block-sorting file 
ii  coreutils [fileutils]         5.2.1-2    The GNU core utilities

-- no debconf information

--===============1287838159==
Content-Type: text/x-c; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="acpi_skip_timer_override_2.4.patch"

# 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-18 07:53:58 -07:00
+++ b/arch/i386/kernel/Makefile	2005-02-18 07:53:58 -07:00
@@ -40,8 +40,8 @@
 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
-obj-$(CONFIG_X86_IO_APIC)	+= io_apic.o
+obj-$(CONFIG_X86_IO_APIC)	+= io_apic.o earlyquirk.o
 obj-$(CONFIG_X86_VISWS_APIC)	+= visws_apic.o
 obj-$(CONFIG_CPU_EMU486)	+= emu.o
 obj-$(CONFIG_EDD)             	+= edd.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;

--===============1287838159==--

---------------------------------------
Received: (at 296639-close) by bugs.debian.org; 26 Mar 2005 06:53:10 +0000
>From katie@ftp-master.debian.org Fri Mar 25 22:53:10 2005
Return-path: <katie@ftp-master.debian.org>
Received: from newraff.debian.org [208.185.25.31] (mail)
	by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
	id 1DF5AT-0002XV-00; Fri, 25 Mar 2005 22:53:09 -0800
Received: from katie by newraff.debian.org with local (Exim 3.35 1 (Debian))
	id 1DF55H-0002FS-00; Sat, 26 Mar 2005 01:47:47 -0500
From: Simon Horman <horms@debian.org>
To: 296639-close@bugs.debian.org
X-Katie: $Revision: 1.55 $
Subject: Bug#296639: fixed in kernel-source-2.4.27 2.4.27-9
Message-Id: <E1DF55H-0002FS-00@newraff.debian.org>
Sender: Archive Administrator <katie@ftp-master.debian.org>
Date: Sat, 26 Mar 2005 01:47:47 -0500
Delivered-To: 296639-close@bugs.debian.org
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02 
	(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Status: No, hits=-6.0 required=4.0 tests=BAYES_00,HAS_BUG_NUMBER 
	autolearn=no version=2.60-bugs.debian.org_2005_01_02
X-Spam-Level: 

Source: kernel-source-2.4.27
Source-Version: 2.4.27-9

We believe that the bug you reported is fixed in the latest version of
kernel-source-2.4.27, which is due to be installed in the Debian FTP archive:

kernel-doc-2.4.27_2.4.27-9_all.deb
  to pool/main/k/kernel-source-2.4.27/kernel-doc-2.4.27_2.4.27-9_all.deb
kernel-patch-debian-2.4.27_2.4.27-9_all.deb
  to pool/main/k/kernel-source-2.4.27/kernel-patch-debian-2.4.27_2.4.27-9_all.deb
kernel-source-2.4.27_2.4.27-9.diff.gz
  to pool/main/k/kernel-source-2.4.27/kernel-source-2.4.27_2.4.27-9.diff.gz
kernel-source-2.4.27_2.4.27-9.dsc
  to pool/main/k/kernel-source-2.4.27/kernel-source-2.4.27_2.4.27-9.dsc
kernel-source-2.4.27_2.4.27-9_all.deb
  to pool/main/k/kernel-source-2.4.27/kernel-source-2.4.27_2.4.27-9_all.deb
kernel-tree-2.4.27_2.4.27-9_all.deb
  to pool/main/k/kernel-source-2.4.27/kernel-tree-2.4.27_2.4.27-9_all.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 296639@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Simon Horman <horms@debian.org> (supplier of updated kernel-source-2.4.27 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Fri, 25 Mar 2005 10:42:50 +0900
Source: kernel-source-2.4.27
Binary: kernel-tree-2.4.27 kernel-source-2.4.27 kernel-patch-debian-2.4.27 kernel-doc-2.4.27
Architecture: source all
Version: 2.4.27-9
Distribution: unstable
Urgency: low
Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org>
Changed-By: Simon Horman <horms@debian.org>
Description: 
 kernel-doc-2.4.27 - Linux kernel specific documentation for version 2.4.27
 kernel-patch-debian-2.4.27 - Debian patches to Linux 2.4.27
 kernel-source-2.4.27 - Linux kernel source for version 2.4.27 with Debian patches
 kernel-tree-2.4.27 - Linux kernel source tree for building Debian kernel images
Closes: 291536 296639 296700 296905
Changes: 
 kernel-source-2.4.27 (2.4.27-9) unstable; urgency=low
 .
   * There was a stray file in 2.4.27-8. Don't include it this time.
     (Simon Horman) (closes: Bug#291536)
 .
   * Updated kernel-tree description from Martin F Krafft
     (Simon Horman)
 .
   * Updated apply script so it can handle point versions
     (Simon Horman)
 .
   * 134_skb_reset_ip_summed.diff: [CAN-2005-0209] resolve checksumming
     exploit in fragmented packet forwarding (Joshua Kwan)
 .
   * 135_fix_ip_options_leak.diff: [CAN-2004-1335] fix leak of IP options
     data. (Joshua Kwan)
 .
   * 136_vc_resizing_overflow.diff: [CAN-2004-1333] make sure VC resizing
     fits in 16 bits. (Joshua Kwan)
 .
   * 137_io_edgeport_overflow.diff: [CAN-2004-1017] fix buffer overflow
     (underflow, really) that opens multiple attack vectors. (Joshua Kwan)
 .
   * 138_amd64_syscall_vuln.diff: [CAN-2004-1144] fix the "int 0x80 hole"
     that allowed overflow of the system call table. (Joshua Kwan)
 .
   * 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.
 .
   * 141_acpi_noirq.patch:
     [ACPI] Enhanced PCI probe, CONFIG_HPET_TIMER build warning fix
     (Simon Horman)
 .
   * 142_acpi_skip_timer_override-1.diff, 142_acpi_skip_timer_override-2.diff,
     142_acpi_skip_timer_override-3.diff, 142_acpi_skip_timer_override-4.diff:
     [ACPI] skip_timer_override including early PCI bridge detection.
     (closes: #296639) (Simon Horman)
 .
   * 121_drm-locking-checks-3.diff: LOCK_TEST_WITH_RETURN build cleanup
     (Simon Horman)
 .
   * 143_outs.diff:
     [SECURITY]: AMD64, allows local users to write to privileged
     IO ports via OUTS instruction (CAN-2005-0204) (Simon Horman)
     (closes: #296700)
 .
   * 144_sparc64-sb1500-clock-2.4.diff by David Miller: enable recognition
     of the clock chip on SunBlade 1500, it won't boot otherwise.
     (Jurij Smakov).
 .
   * 145_insert_vm_struct-no-BUG.patch:
     [SECURITY] make insert_vm_struct return an error rather than BUG().
     See CAN-2005-0003. (dann frazier)
 .
   * 146_ip6_copy_metadata_leak.diff 147_ip_copy_metadata_leak.diff:
     [SECURITY] Do not leak dst entries in ip_copy_metadata()
     See CAN-2005-0210. (Simon Horman)
 .
   * 148_ip_evitor_smp_loop.diff:
     Fix theoretical loop on SMP in ip_evictor().
     (Simon Horman, Andres Salomon)
 .
   * 149_fragment_queue_flush.diff:
     Flush fragment queue on conntrack unload. (Simon Horman, Andres Salomon)
 .
   * *** ABI Change! Notify D-I team or delay for future release
     *** Omitted from release
     *** 150_private_fragment_queues-1.diff, 150_private_fragment_queues-2.diff:
     *** Keep fragment queues private to each user. See CAN-2005-0449 and
     *** http://oss.sgi.com/archives/netdev/2005-01/msg01048.html
     *** (Simon Horman, Andres Salomon)
 .
   * 151_atm_get_addr_signedness_fix.diff:
     [SECURITY]  Fix ATM copy-to-user usage. See: CAN-2005-0531.
     See: http://www.guninski.com/where_do_you_want_billg_to_go_today_3.html
     (closes: #296905) (Simon Horman)
 .
   * 153_ppp_async_dos.diff:
     [SECURITY] remote Linux DoS on ppp servers. See: CAN-2005-0384
     (Simon Horman)
 .
   * 111-smb-client-overflow-fix-2.diff, 111-smb-client-overflow-fix-1.diff:
     [SECURITY] The above patches, included in 2.4.27-6 resolve:
     local information leak caused by race in SMP systems with
     more than 4GB of memory. remote information leak cansed by
     handling of TRANS2 packets handling in smbfs. See CAN-2004-1191.
     (see: #300163) (Simon Horman)
 .
   * 154_cmsg_compat_signedness_fix.diff:
     Fix CMSG32_OK macros. (Dann Frazier, Simon Horman)
Files: 
 c1b495a855629746033b7672ca5a9415 886 devel optional kernel-source-2.4.27_2.4.27-9.dsc
 9cc9dbdfe3f53e4c45c331ea303de95d 678025 devel optional kernel-source-2.4.27_2.4.27-9.diff.gz
 d258368f37be562ec6f373c7a7a1f767 614256 devel optional kernel-patch-debian-2.4.27_2.4.27-9_all.deb
 5ab1e1bf82d64c245283466f81731701 3575462 doc optional kernel-doc-2.4.27_2.4.27-9_all.deb
 88a703faebb4e68fef18da39865dd42b 31019488 devel optional kernel-source-2.4.27_2.4.27-9_all.deb
 d282f3ac6f6d5b98a74415bc355b82e6 22754 devel optional kernel-tree-2.4.27_2.4.27-9_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCQ3fvdu+M6Iexz7URAqDlAJ9wbMFNFWUJi+Wh0RLR1RecI3MmQACgu/XD
R+PXjmy/ZXFfp3lZ61QsURM=
=vIso
-----END PGP SIGNATURE-----



Reply to: