On Thu, Sep 29, 2016 at 12:48:11PM -0700, Andy Lutomirski wrote: > The condition for reading CR4 was wrong: there are some CPUs with > CPUID but not CR4. Rather than trying to make the condition exact, > using __read_cr4_safe().
Please s/using/use/ while applying. > Reported-by: [email protected] > Fixes: 18bc7bd523e0 ("x86/boot: Synchronize trampoline_cr4_features and > mmu_cr4_features directly") > Signed-off-by: Andy Lutomirski <[email protected]> > --- > arch/x86/kernel/setup.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c > index 0fa60f5f5a16..98c9cd6f3b5d 100644 > --- a/arch/x86/kernel/setup.c > +++ b/arch/x86/kernel/setup.c > @@ -1137,9 +1137,7 @@ void __init setup_arch(char **cmdline_p) > * auditing all the early-boot CR4 manipulation would be needed to > * rule it out. > */ > - if (boot_cpu_data.cpuid_level >= 0) > - /* A CPU has %cr4 if and only if it has CPUID. */ > - mmu_cr4_features = __read_cr4(); > + mmu_cr4_features = __read_cr4_safe(); > > memblock_set_current_limit(get_max_mapped()); > > -- Reviewed-by: Borislav Petkov <[email protected]> -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. --

