Przeglądaj źródła

x86: don't treat bigsmp as non-standard

just like 64 bit switch from flat logical APIC messages to
flat physical mode automatically.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu 16 lat temu
rodzic
commit
26f7ef14a7

+ 7 - 8
arch/x86/Kconfig

@@ -262,6 +262,12 @@ config X86_MPPARSE
 	  For old smp systems that do not have proper acpi support. Newer systems
 	  For old smp systems that do not have proper acpi support. Newer systems
 	  (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
 	  (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
 
 
+config X86_BIGSMP
+	bool "Support for big SMP systems with more than 8 CPUs"
+	depends on X86_32 && SMP
+	help
+	  This option is needed for the systems that have more than 8 CPUs
+
 config X86_NON_STANDARD
 config X86_NON_STANDARD
 	bool "Support for non-standard x86 platforms"
 	bool "Support for non-standard x86 platforms"
 	help
 	help
@@ -338,13 +344,6 @@ config X86_32_NON_STANDARD
 	  if you select them all, kernel will probe it one by one. and will
 	  if you select them all, kernel will probe it one by one. and will
 	  fallback to default.
 	  fallback to default.
 
 
-config X86_BIGSMP
-	bool "Support for big SMP systems with more than 8 CPUs"
-	depends on X86_32_NON_STANDARD
-	help
-	  This option is needed for the systems that have more than 8 CPUs
-	  and if the system is not of any sub-arch type above.
-
 config X86_NUMAQ
 config X86_NUMAQ
 	bool "NUMAQ (IBM/Sequent)"
 	bool "NUMAQ (IBM/Sequent)"
 	depends on X86_32_NON_STANDARD
 	depends on X86_32_NON_STANDARD
@@ -366,7 +365,7 @@ config X86_SUMMIT
 
 
 config X86_ES7000
 config X86_ES7000
 	bool "Support for Unisys ES7000 IA32 series"
 	bool "Support for Unisys ES7000 IA32 series"
-	depends on X86_32_NON_STANDARD
+	depends on X86_32_NON_STANDARD && X86_BIGSMP
 	help
 	help
 	  Support for Unisys ES7000 systems.  Say 'Y' here if this kernel is
 	  Support for Unisys ES7000 systems.  Say 'Y' here if this kernel is
 	  supposed to run on an IA32-based Unisys ES7000 system.
 	  supposed to run on an IA32-based Unisys ES7000 system.

+ 1 - 1
arch/x86/kernel/acpi/boot.c

@@ -1335,7 +1335,7 @@ static void __init acpi_process_madt(void)
 		if (!error) {
 		if (!error) {
 			acpi_lapic = 1;
 			acpi_lapic = 1;
 
 
-#ifdef CONFIG_X86_32_NON_STANDARD
+#ifdef CONFIG_X86_BIGSMP
 			generic_bigsmp_probe();
 			generic_bigsmp_probe();
 #endif
 #endif
 			/*
 			/*

+ 2 - 2
arch/x86/kernel/mpparse.c

@@ -372,8 +372,8 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)
 			(*x86_quirks->mpc_record)++;
 			(*x86_quirks->mpc_record)++;
 	}
 	}
 
 
-#ifdef CONFIG_X86_32_NON_STANDARD
-       generic_bigsmp_probe();
+#ifdef CONFIG_X86_BIGSMP
+	generic_bigsmp_probe();
 #endif
 #endif
 
 
 	if (apic->setup_apic_routing)
 	if (apic->setup_apic_routing)

+ 1 - 1
arch/x86/kernel/setup.c

@@ -936,7 +936,7 @@ void __init setup_arch(char **cmdline_p)
 	map_vsyscall();
 	map_vsyscall();
 #endif
 #endif
 
 
-#ifdef CONFIG_X86_32_NON_STANDARD
+#if defined(CONFIG_X86_32_NON_STANDARD) || defined(CONFIG_X86_BIGSMP)
 	generic_apic_probe();
 	generic_apic_probe();
 #endif
 #endif
 
 

+ 1 - 1
arch/x86/kernel/smpboot.c

@@ -1007,7 +1007,7 @@ static int __init smp_sanity_check(unsigned max_cpus)
 
 
 		printk(KERN_WARNING
 		printk(KERN_WARNING
 		       "More than 8 CPUs detected - skipping them.\n"
 		       "More than 8 CPUs detected - skipping them.\n"
-		       "Use CONFIG_X86_32_NON_STANDARD and CONFIG_X86_BIGSMP.\n");
+		       "Use CONFIG_X86_BIGSMP.\n");
 
 
 		nr = 0;
 		nr = 0;
 		for_each_present_cpu(cpu) {
 		for_each_present_cpu(cpu) {