mirror of https://gitee.com/openkylin/linux.git
x86/mce: WARN once if IA32_FEAT_CTL MSR is left unlocked
WARN if the IA32_FEAT_CTL MSR is somehow left unlocked now that CPU initialization unconditionally locks the MSR. Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lkml.kernel.org/r/20191221044513.21680-6-sean.j.christopherson@intel.com
This commit is contained in:
parent
1db2a6e1e2
commit
6d527cebfa
|
@ -116,14 +116,15 @@ static bool lmce_supported(void)
|
|||
/*
|
||||
* BIOS should indicate support for LMCE by setting bit 20 in
|
||||
* IA32_FEAT_CTL without which touching MCG_EXT_CTL will generate a #GP
|
||||
* fault.
|
||||
* fault. The MSR must also be locked for LMCE_ENABLED to take effect.
|
||||
* WARN if the MSR isn't locked as init_ia32_feat_ctl() unconditionally
|
||||
* locks the MSR in the event that it wasn't already locked by BIOS.
|
||||
*/
|
||||
rdmsrl(MSR_IA32_FEAT_CTL, tmp);
|
||||
if ((tmp & (FEAT_CTL_LOCKED | FEAT_CTL_LMCE_ENABLED)) ==
|
||||
(FEAT_CTL_LOCKED | FEAT_CTL_LMCE_ENABLED))
|
||||
return true;
|
||||
if (WARN_ON_ONCE(!(tmp & FEAT_CTL_LOCKED)))
|
||||
return false;
|
||||
|
||||
return false;
|
||||
return tmp & FEAT_CTL_LMCE_ENABLED;
|
||||
}
|
||||
|
||||
bool mce_intel_cmci_poll(void)
|
||||
|
|
Loading…
Reference in New Issue