x86/cpu: Uninline CR4 accessors
authorThomas Gleixner <tglx@linutronix.de>
Tue, 21 Apr 2020 09:20:29 +0000 (11:20 +0200)
committerBorislav Petkov <bp@suse.de>
Fri, 24 Apr 2020 16:46:42 +0000 (18:46 +0200)
commitd8f0b35331c4423e033f81f10eb5e0c7e4e1dcec
treef5505dc788155994e589f36bec0821e510a30e12
parent8c5cc19e94703182647dfccc164e4437a04539c8
x86/cpu: Uninline CR4 accessors

cpu_tlbstate is exported because various TLB-related functions need
access to it, but cpu_tlbstate is sensitive information which should
only be accessed by well-contained kernel functions and not be directly
exposed to modules.

The various CR4 accessors require cpu_tlbstate as the CR4 shadow cache
is located there.

In preparation for unexporting cpu_tlbstate, create a builtin function
for manipulating CR4 and rework the various helpers to use it.

No functional change.

 [ bp: push the export of native_write_cr4() only when CONFIG_LKTDM=m to
   the last patch in the series. ]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200421092558.939985695@linutronix.de
arch/x86/include/asm/tlbflush.h
arch/x86/kernel/cpu/common.c
arch/x86/kernel/process.c