• Y
    x86/mce/AMD: Fix HWID_MCATYPE calculation by grouping arguments · 859af13a
    Yazen Ghannam 提交于
    The calculation of the hwid_mcatype value in get_smca_bank_info()
    became incorrect after applying the following commit:
    
      1ce9cd7f ("x86/RAS: Simplify SMCA HWID descriptor struct")
    
    This causes the function to not match a bank to its type.
    
    Disassembly of hwid_mcatype calculation after change:
    
          db:       8b 45 e0                mov    -0x20(%rbp),%eax
          de:       41 89 c4                mov    %eax,%r12d
          e1:       25 00 00 ff 0f          and    $0xfff0000,%eax
          e6:       41 c1 ec 10             shr    $0x10,%r12d
          ea:       41 09 c4                or     %eax,%r12d
    
    Disassembly of hwid_mcatype calculation in original code:
    
         286:       8b 45 d0                mov    -0x30(%rbp),%eax
         289:       41 89 c5                mov    %eax,%r13d
         28c:       c1 e8 10                shr    $0x10,%eax
         28f:       41 81 e5 ff 0f 00 00    and    $0xfff,%r13d
         296:       41 c1 e5 10             shl    $0x10,%r13d
         29a:       41 09 c5                or     %eax,%r13d
    
    Grouping the arguments to the HWID_MCATYPE() macro fixes the issue.
    
    ( Boris suggested adding parentheses in the macro. )
    Signed-off-by: NYazen Ghannam <Yazen.Ghannam@amd.com>
    Cc: Aravind Gopalakrishnan <aravindksg.lkml@gmail.com>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: linux-edac@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: NIngo Molnar <mingo@kernel.org>
    859af13a
mce.h 12.0 KB