x86: Clean up cr4 manipulation
authorAndy Lutomirski <luto@amacapital.net>
Fri, 24 Oct 2014 22:58:07 +0000 (15:58 -0700)
committerIngo Molnar <mingo@kernel.org>
Wed, 4 Feb 2015 11:10:41 +0000 (12:10 +0100)
commit375074cc736ab1d89a708c0a8d7baa4a70d5d476
treee7ceb81f6fc54814fc57716a79f8d232f5e6afb8
parent0967160ad615985c7c35443156ea9aecc60c37b8
x86: Clean up cr4 manipulation

CR4 manipulation was split, seemingly at random, between direct
(write_cr4) and using a helper (set/clear_in_cr4).  Unfortunately,
the set_in_cr4 and clear_in_cr4 helpers also poke at the boot code,
which only a small subset of users actually wanted.

This patch replaces all cr4 access in functions that don't leave cr4
exactly the way they found it with new helpers cr4_set_bits,
cr4_clear_bits, and cr4_set_bits_and_update_boot.

Signed-off-by: Andy Lutomirski <luto@amacapital.net>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Vince Weaver <vince@deater.net>
Cc: "hillf.zj" <hillf.zj@alibaba-inc.com>
Cc: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/495a10bdc9e67016b8fd3945700d46cfd5c12c2f.1414190806.git.luto@amacapital.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
15 files changed:
arch/x86/include/asm/processor.h
arch/x86/include/asm/tlbflush.h
arch/x86/include/asm/virtext.h
arch/x86/kernel/cpu/common.c
arch/x86/kernel/cpu/mcheck/mce.c
arch/x86/kernel/cpu/mcheck/p5.c
arch/x86/kernel/cpu/mcheck/winchip.c
arch/x86/kernel/cpu/perf_event.c
arch/x86/kernel/i387.c
arch/x86/kernel/process.c
arch/x86/kernel/xsave.c
arch/x86/kvm/vmx.c
arch/x86/mm/init.c
arch/x86/xen/enlighten.c
drivers/lguest/x86/core.c