rpms/kernel/FC-4 linux-2.6-x86-apic-off-by-default.patch,1.1,1.2

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Nov 23 05:07:28 UTC 2005


Author: davej

Update of /cvs/dist/rpms/kernel/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv30128

Modified Files:
	linux-2.6-x86-apic-off-by-default.patch 
Log Message:
update


linux-2.6-x86-apic-off-by-default.patch:
 arch/i386/Kconfig            |   12 ++++++++++++
 arch/i386/kernel/acpi/boot.c |    9 ++++++++-
 arch/i386/kernel/apic.c      |   13 ++++++++++---
 arch/i386/kernel/io_apic.c   |    2 +-
 arch/i386/kernel/setup.c     |   16 ++++++++++++++--
 include/asm-i386/acpi.h      |    4 ++++
 include/asm-i386/apic.h      |    6 ++++++
 7 files changed, 55 insertions(+), 7 deletions(-)

Index: linux-2.6-x86-apic-off-by-default.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-4/linux-2.6-x86-apic-off-by-default.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-x86-apic-off-by-default.patch	28 Oct 2005 05:23:07 -0000	1.1
+++ linux-2.6-x86-apic-off-by-default.patch	23 Nov 2005 05:07:21 -0000	1.2
@@ -1,10 +1,10 @@
 From darrick at us.ibm.com
 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=167333
 
-diff -Naur orig/arch/i386/Kconfig linux-2.6.13/arch/i386/Kconfig
---- orig/arch/i386/Kconfig	2005-10-24 17:54:05.000000000 -0700
-+++ linux-2.6.13/arch/i386/Kconfig	2005-10-24 15:39:37.000000000 -0700
-@@ -546,6 +546,18 @@
+diff -Naur orig/arch/i386/Kconfig new/arch/i386/Kconfig
+--- orig/arch/i386/Kconfig	2005-11-22 13:32:50.000000000 -0800
++++ new/arch/i386/Kconfig	2005-11-22 13:34:28.000000000 -0800
+@@ -253,6 +253,18 @@
  	  to use it. If you say Y here even though your machine doesn't have
  	  an IO-APIC, then the kernel will still run with no slowdown at all.
  
@@ -23,21 +23,47 @@
  config X86_LOCAL_APIC
  	bool
  	depends on X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER)
-diff -Naur orig/arch/i386/kernel/apic.c linux-2.6.13/arch/i386/kernel/apic.c
---- orig/arch/i386/kernel/apic.c	2005-10-24 17:54:05.000000000 -0700
-+++ linux-2.6.13/arch/i386/kernel/apic.c	2005-10-24 23:02:33.000000000 -0700
+diff -Naur orig/arch/i386/kernel/acpi/boot.c new/arch/i386/kernel/acpi/boot.c
+--- orig/arch/i386/kernel/acpi/boot.c	2005-11-22 13:32:50.000000000 -0800
++++ new/arch/i386/kernel/acpi/boot.c	2005-11-22 18:06:42.000000000 -0800
+@@ -37,6 +37,8 @@
+ #include <asm/io.h>
+ #include <asm/mpspec.h>
+ 
++extern int enable_local_apic __initdata;
++
+ #ifdef	CONFIG_X86_64
+ 
+ extern void __init clustered_apic_check(void);
+@@ -1139,7 +1141,12 @@
+ 	/*
+ 	 * Process the Multiple APIC Description Table (MADT), if present
+ 	 */
+-	acpi_process_madt();
++	if (enable_local_apic < 0) {
++		printk(KERN_INFO PREFIX "Local APIC disabled (%d); pass 'lapic' to re-enable.\n", enable_local_apic);
++	} else {
++		printk(KERN_INFO PREFIX "Local APIC enabled (%d).\n", enable_local_apic);
++		acpi_process_madt();
++	}
+ 
+ 	acpi_table_parse(ACPI_HPET, acpi_parse_hpet);
+ 
+diff -Naur orig/arch/i386/kernel/apic.c new/arch/i386/kernel/apic.c
+--- orig/arch/i386/kernel/apic.c	2005-11-22 13:32:46.000000000 -0800
++++ new/arch/i386/kernel/apic.c	2005-11-22 18:06:18.000000000 -0800
 @@ -42,8 +42,9 @@
  
  /*
   * Knob to control our willingness to enable the local APIC.
-+ * -2=default-disable, -1=force-disable, 1=force-disable, 0=automatic
++ * -2=default-disable, -1=force-disable, 1=force-enable, 0=automatic
   */
 -int enable_local_apic __initdata = 0; /* -1=force-disable, +1=force-enable */
 +int enable_local_apic __initdata = (X86_APIC_DEFAULT_OFF ? -2 : 0);
  
  /*
   * Debug level
-@@ -751,7 +752,7 @@
+@@ -757,7 +758,7 @@
  		 * APIC only if "lapic" specified.
  		 */
  		if (enable_local_apic <= 0) {
@@ -46,7 +72,16 @@
  			       "you can enable it with \"lapic\"\n");
  			return -1;
  		}
-@@ -1265,6 +1266,12 @@
+@@ -839,7 +840,7 @@
+ 		int i;
+ 
+ 		for (i = 0; i < nr_ioapics; i++) {
+-			if (smp_found_config) {
++			if (smp_found_config && !skip_ioapic_setup) {
+ 				ioapic_phys = mp_ioapics[i].mpc_apicaddr;
+ 				if (!ioapic_phys) {
+ 					printk(KERN_ERR
+@@ -1272,6 +1273,12 @@
  	if (!smp_found_config && !cpu_has_apic)
  		return -1;
  
@@ -59,10 +94,10 @@
  	/*
  	 * Complain if the BIOS pretends there is one.
  	 */
-diff -Naur orig/arch/i386/kernel/io_apic.c linux-2.6.13/arch/i386/kernel/io_apic.c
---- orig/arch/i386/kernel/io_apic.c	2005-10-24 17:54:05.000000000 -0700
-+++ linux-2.6.13/arch/i386/kernel/io_apic.c	2005-10-24 15:39:36.000000000 -0700
-@@ -678,7 +678,7 @@
+diff -Naur orig/arch/i386/kernel/io_apic.c new/arch/i386/kernel/io_apic.c
+--- orig/arch/i386/kernel/io_apic.c	2005-11-22 13:32:46.000000000 -0800
++++ new/arch/i386/kernel/io_apic.c	2005-11-22 13:34:27.000000000 -0800
+@@ -681,7 +681,7 @@
  #define MAX_PIRQS 8
  static int pirq_entries [MAX_PIRQS];
  static int pirqs_enabled;
@@ -71,10 +106,19 @@
  
  static int __init ioapic_setup(char *str)
  {
-diff -Naur orig/arch/i386/kernel/setup.c linux-2.6.13/arch/i386/kernel/setup.c
---- orig/arch/i386/kernel/setup.c	2005-10-24 17:54:05.000000000 -0700
-+++ linux-2.6.13/arch/i386/kernel/setup.c	2005-10-24 15:39:36.000000000 -0700
-@@ -857,6 +857,10 @@
+diff -Naur orig/arch/i386/kernel/setup.c new/arch/i386/kernel/setup.c
+--- orig/arch/i386/kernel/setup.c	2005-11-22 13:32:46.000000000 -0800
++++ new/arch/i386/kernel/setup.c	2005-11-22 16:23:31.000000000 -0800
+@@ -60,6 +60,8 @@
+ #include "setup_arch_pre.h"
+ #include <bios_ebda.h>
+ 
++extern int enable_local_apic __initdata;
++
+ /* Forward Declaration. */
+ void __init find_max_pfn(void);
+ 
+@@ -865,6 +867,10 @@
  		/* disable IO-APIC */
  		else if (!memcmp(from, "noapic", 6))
  			disable_ioapic_setup();
@@ -85,9 +129,26 @@
  #endif /* CONFIG_X86_IO_APIC */
  #endif /* CONFIG_ACPI */
  
-diff -Naur orig/include/asm-i386/acpi.h linux-2.6.13/include/asm-i386/acpi.h
---- orig/include/asm-i386/acpi.h	2005-10-24 17:54:05.000000000 -0700
-+++ linux-2.6.13/include/asm-i386/acpi.h	2005-10-24 15:39:36.000000000 -0700
+@@ -1606,8 +1612,14 @@
+ #endif
+ #endif
+ #ifdef CONFIG_X86_LOCAL_APIC
+-	if (smp_found_config)
+-		get_smp_config();
++	if (smp_found_config) {
++		if (enable_local_apic >= 0) {
++			printk(KERN_INFO "LAPIC enabled (%d), calling get_smp_config\n", enable_local_apic);
++			get_smp_config();
++		} else {
++			printk(KERN_INFO "LAPIC disabled (%d)\n", enable_local_apic);
++		}
++	}
+ #endif
+ 
+ 	register_memory();
+diff -Naur orig/include/asm-i386/acpi.h new/include/asm-i386/acpi.h
+--- orig/include/asm-i386/acpi.h	2005-10-27 17:02:08.000000000 -0700
++++ new/include/asm-i386/acpi.h	2005-11-22 13:34:27.000000000 -0800
 @@ -134,6 +134,10 @@
  {
  	skip_ioapic_setup = 1;
@@ -99,9 +160,9 @@
  
  static inline int ioapic_setup_disabled(void)
  {
-diff -Naur orig/include/asm-i386/apic.h linux-2.6.13/include/asm-i386/apic.h
---- orig/include/asm-i386/apic.h	2005-10-24 17:54:05.000000000 -0700
-+++ linux-2.6.13/include/asm-i386/apic.h	2005-10-24 15:39:36.000000000 -0700
+diff -Naur orig/include/asm-i386/apic.h new/include/asm-i386/apic.h
+--- orig/include/asm-i386/apic.h	2005-10-27 17:02:08.000000000 -0700
++++ new/include/asm-i386/apic.h	2005-11-22 13:34:27.000000000 -0800
 @@ -82,6 +82,12 @@
  # define apic_write_around(x,y) apic_write_atomic((x),(y))
  #endif




More information about the fedora-cvs-commits mailing list