Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 192d1dcc authored by Andy Lutomirski's avatar Andy Lutomirski Committed by Thomas Gleixner
Browse files

x86/boot: Fix another __read_cr4() case on 486



The condition for reading CR4 was wrong: there are some CPUs with
CPUID but not CR4.  Rather than trying to make the condition exact,
use __read_cr4_safe().

Fixes: 18bc7bd5 ("x86/boot: Synchronize trampoline_cr4_features and mmu_cr4_features directly")
Reported-by: default avatar <david@saggiorato.net>
Signed-off-by: default avatarAndy Lutomirski <luto@kernel.org>
Reviewed-by: default avatarBorislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Link: http://lkml.kernel.org/r/8c453a61c4f44ab6ff43c29780ba04835234d2e5.1475178369.git.luto@kernel.org


Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent e1bfc11c
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -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());