* Mike Galbraith <umgwanakikb...@gmail.com> wrote: > > This would suggest sensitivity on CPUID details, i.e. that doing > > fpu__init_system() before other CPU init sequences is causing the bug. > > > > Does the patch below perhaps make a difference? (I'd suggest to apply it > > _without_ the other patch I sent.) > > Yup, that made it not care about the BIOS setting.. again.
> > diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c > > index 9fc5e3d9d9c8..922c5e0cea4c 100644 > > --- a/arch/x86/kernel/cpu/common.c > > +++ b/arch/x86/kernel/cpu/common.c > > @@ -742,7 +742,6 @@ static void __init early_identify_cpu(struct > > cpuinfo_x86 *c) > > cpu_detect(c); > > get_cpu_vendor(c); > > get_cpu_cap(c); > > - fpu__init_system(c); > > > > if (this_cpu->c_early_init) > > this_cpu->c_early_init(c); > > @@ -754,6 +753,7 @@ static void __init early_identify_cpu(struct > > cpuinfo_x86 *c) > > this_cpu->c_bsp_init(c); > > > > setup_force_cpu_cap(X86_FEATURE_ALWAYS); > > + fpu__init_system(c); > > } Ok, so could you please move the fpu__init_system() further up and see which position is that starts breaking with the BIOS option set? here's the current, broken layout of the code: get_cpu_cap(c); [0] fpu__init_system(c); if (this_cpu->c_early_init) this_cpu->c_early_init(c); [1] c->cpu_index = 0; [2] filter_cpuid_features(c, false); [3] if (this_cpu->c_bsp_init) this_cpu->c_bsp_init(c); [4] setup_force_cpu_cap(X86_FEATURE_ALWAYS); [5] } and we know it from your testing that moving [0] to [5] fixes the crash. The question is, can we move it to [4], [3], [2] or even [1] instead, without breaking the system? I still don't see where the breakage comes from, but this would help us narrow it down. Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/