This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / arch / i386 / kernel / cpu / common.c
index 30e25e3..c21c8e5 100644 (file)
@@ -329,7 +329,7 @@ void __init identify_cpu(struct cpuinfo_x86 *c)
 
        generic_identify(c);
 
-       printk(KERN_DEBUG "CPU: After generic identify, caps: %08lx %08lx %08lx %08lx\n",
+       printk(KERN_DEBUG "CPU:     After generic identify, caps: %08lx %08lx %08lx %08lx\n",
                c->x86_capability[0],
                c->x86_capability[1],
                c->x86_capability[2],
@@ -338,7 +338,7 @@ void __init identify_cpu(struct cpuinfo_x86 *c)
        if (this_cpu->c_identify) {
                this_cpu->c_identify(c);
 
-       printk(KERN_DEBUG "CPU: After vendor identify, caps:  %08lx %08lx %08lx %08lx\n",
+       printk(KERN_DEBUG "CPU:     After vendor identify, caps: %08lx %08lx %08lx %08lx\n",
                c->x86_capability[0],
                c->x86_capability[1],
                c->x86_capability[2],
@@ -379,6 +379,9 @@ void __init identify_cpu(struct cpuinfo_x86 *c)
        if (disable_pse)
                clear_bit(X86_FEATURE_PSE, c->x86_capability);
 
+       /* hack: disable SEP unconditionally. */
+       clear_bit(X86_FEATURE_SEP, c->x86_capability);
+
        /* If the model name is still unset, do table lookup. */
        if ( !c->x86_model_id[0] ) {
                char *p;
@@ -393,7 +396,7 @@ void __init identify_cpu(struct cpuinfo_x86 *c)
 
        /* Now the feature flags better reflect actual CPU features! */
 
-       printk(KERN_DEBUG "CPU: After all inits, caps:        %08lx %08lx %08lx %08lx\n",
+       printk(KERN_DEBUG "CPU:     After all inits, caps: %08lx %08lx %08lx %08lx\n",
               c->x86_capability[0],
               c->x86_capability[1],
               c->x86_capability[2],
@@ -473,6 +476,7 @@ void early_cpu_detect(void);
 
 void __init early_cpu_init(void)
 {
+       early_cpu_detect();
        intel_cpu_init();
        cyrix_init_cpu();
        nsc_init_cpu();
@@ -482,7 +486,6 @@ void __init early_cpu_init(void)
        rise_init_cpu();
        nexgen_init_cpu();
        umc_init_cpu();
-       early_cpu_detect();
 
 #ifdef CONFIG_DEBUG_PAGEALLOC
        /* pse is not compatible with on-the-fly unmapping,
@@ -554,12 +557,16 @@ void __init cpu_init (void)
        set_tss_desc(cpu,t);
        cpu_gdt_table[cpu][GDT_ENTRY_TSS].b &= 0xfffffdff;
        load_TR_desc();
-       load_LDT(&init_mm.context);
+       if (cpu)
+               load_LDT(&init_mm.context);
 
        /* Set up doublefault TSS pointer in the GDT */
        __set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss);
        cpu_gdt_table[cpu][GDT_ENTRY_DOUBLEFAULT_TSS].b &= 0xfffffdff;
 
+       if (cpu)
+               trap_init_virtual_GDT();
+
        /* Clear %fs and %gs. */
        asm volatile ("xorl %eax, %eax; movl %eax, %fs; movl %eax, %gs");