diff options
author | Kirill A. Shutemov <kirill.shutemov@linux.intel.com> | 2018-04-10 12:27:04 +0300 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2018-04-10 16:33:21 +0200 |
commit | d94a155c59c98c19b98ee949eaab6a0312bbd6be (patch) | |
tree | c6b73deac64398eaef6a3c9b69652572939f68a2 /init | |
parent | 92e830f25fc0be447486a4658887ded68ef824f5 (diff) | |
download | linux-d94a155c59c98c19b98ee949eaab6a0312bbd6be.tar.bz2 |
x86/cpu: Prevent cpuinfo_x86::x86_phys_bits adjustment corruption
Some features (Intel MKTME, AMD SME) reduce the number of effectively
available physical address bits. cpuinfo_x86::x86_phys_bits is adjusted
accordingly during the early cpu feature detection.
Though if get_cpu_cap() is called later again then this adjustement is
overwritten. That happens in setup_pku(), which is called after
detect_tme().
To address this, extract the address sizes enumeration into a separate
function, which is only called only from early_identify_cpu() and from
generic_identify().
This makes get_cpu_cap() safe to be called later during boot proccess
without overwriting cpuinfo_x86::x86_phys_bits.
[ tglx: Massaged changelog ]
Fixes: cb06d8e3d020 ("x86/tme: Detect if TME and MKTME is activated by BIOS")
Reported-by: Kai Huang <kai.huang@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: linux-mm@kvack.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Link: https://lkml.kernel.org/r/20180410092704.41106-1-kirill.shutemov@linux.intel.com
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions