x86/smp: Remove stack_smp_processor_id()
[cascardo/linux.git] / arch / x86 / kernel / cpu / common.c
index 6ef6ed9..d22a7b9 100644 (file)
@@ -37,6 +37,7 @@
 #include <asm/mtrr.h>
 #include <linux/numa.h>
 #include <asm/asm.h>
+#include <asm/bugs.h>
 #include <asm/cpu.h>
 #include <asm/mce.h>
 #include <asm/msr.h>
@@ -270,6 +271,8 @@ static inline void squash_the_stupid_serial_number(struct cpuinfo_x86 *c)
 static __init int setup_disable_smep(char *arg)
 {
        setup_clear_cpu_cap(X86_FEATURE_SMEP);
+       /* Check for things that depend on SMEP being enabled: */
+       check_mpx_erratum(&boot_cpu_data);
        return 1;
 }
 __setup("nosmep", setup_disable_smep);
@@ -310,6 +313,10 @@ static bool pku_disabled;
 
 static __always_inline void setup_pku(struct cpuinfo_x86 *c)
 {
+       /* check the boot processor, plus compile options for PKU: */
+       if (!cpu_feature_enabled(X86_FEATURE_PKU))
+               return;
+       /* checks the actual processor's cpuid bits: */
        if (!cpu_has(c, X86_FEATURE_PKU))
                return;
        if (pku_disabled)
@@ -1445,7 +1452,7 @@ void cpu_init(void)
        struct task_struct *me;
        struct tss_struct *t;
        unsigned long v;
-       int cpu = stack_smp_processor_id();
+       int cpu = raw_smp_processor_id();
        int i;
 
        wait_for_master_cpu(cpu);