• Tony Luck's avatar
    x86/mce: Fix logic and comments around MSR_PPIN_CTL · 59b58096
    Tony Luck authored
    There are two implemented bits in the PPIN_CTL MSR:
    
    Bit 0: LockOut (R/WO)
          Set 1 to prevent further writes to MSR_PPIN_CTL.
    
    Bit 1: Enable_PPIN (R/W)
           If 1, enables MSR_PPIN to be accessible using RDMSR.
           If 0, an attempt to read MSR_PPIN will cause #GP.
    
    So there are four defined values:
    	0: PPIN is disabled, PPIN_CTL may be updated
    	1: PPIN is disabled. PPIN_CTL is locked against updates
    	2: PPIN is enabled. PPIN_CTL may be updated
    	3: PPIN is enabled. PPIN_CTL is locked against updates
    
    Code would only enable the X86_FEATURE_INTEL_PPIN feature for case "2".
    When it should have done so for both case "2" and case "3".
    
    Fix the final test to just check for the enable bit. Also fix some of
    the other comments in this function.
    
    Fixes: 3f5a7896 ("x86/mce: Include the PPIN in MCE records when available")
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/20200226011737.9958-1-tony.luck@intel.com
    59b58096
intel.c 12.8 KB