summaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-02-13 13:12:27 +0100
committerIngo Molnar <mingo@elte.hu>2009-02-13 13:12:27 +0100
commit39b00439f69584b2d3a92d07c81502e323684852 (patch)
tree6b56681c354cc46b2ec78dee30981c4dcf36962e /init
parentdee5847df4461d56802c534c7ac0e15830591533 (diff)
parentb233969eaa98c7b339d955fe25a58bf6bf25739a (diff)
Merge branch 'x86/headers' into kmemcheck
Conflicts: arch/x86/include/asm/pgtable.h Merged into: arch/x86/include/asm/pgtable_types.h Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'init')
-rw-r--r--init/main.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/init/main.c b/init/main.c
index d6daef2e40e4..7459fad0419e 100644
--- a/init/main.c
+++ b/init/main.c
@@ -14,6 +14,7 @@
#include <linux/proc_fs.h>
#include <linux/kernel.h>
#include <linux/syscalls.h>
+#include <linux/stackprotector.h>
#include <linux/string.h>
#include <linux/ctype.h>
#include <linux/delay.h>
@@ -136,14 +137,14 @@ unsigned int __initdata setup_max_cpus = NR_CPUS;
* greater than 0, limits the maximum number of CPUs activated in
* SMP mode to <NUM>.
*/
-#ifndef CONFIG_X86_IO_APIC
-static inline void disable_ioapic_setup(void) {};
-#endif
+
+void __weak arch_disable_smp_support(void) { }
static int __init nosmp(char *str)
{
setup_max_cpus = 0;
- disable_ioapic_setup();
+ arch_disable_smp_support();
+
return 0;
}
@@ -153,14 +154,14 @@ static int __init maxcpus(char *str)
{
get_option(&str, &setup_max_cpus);
if (setup_max_cpus == 0)
- disable_ioapic_setup();
+ arch_disable_smp_support();
return 0;
}
early_param("maxcpus", maxcpus);
#else
-#define setup_max_cpus NR_CPUS
+const unsigned int setup_max_cpus = NR_CPUS;
#endif
/*
@@ -540,6 +541,12 @@ asmlinkage void __init start_kernel(void)
*/
lockdep_init();
debug_objects_early_init();
+
+ /*
+ * Set up the the initial canary ASAP:
+ */
+ boot_init_stack_canary();
+
cgroup_init_early();
local_irq_disable();