diff -urNp mcelog-d2e13bf0.orig/mcelog.c mcelog-d2e13bf0/mcelog.c --- mcelog-d2e13bf0.orig/mcelog.c 2018-06-28 11:53:15.907862669 -0400 +++ mcelog-d2e13bf0/mcelog.c 2018-06-28 11:54:56.247852219 -0400 @@ -446,6 +446,9 @@ static void dump_mce(struct mce *m, unsi if (recordlen >= offsetof(struct mce, ppin) && m->ppin) n += Wprintf("PPIN %llx\n", m->ppin); + if (recordlen > offsetof(struct mce, microcode) && m->microcode) + n += Wprintf("MICROCODE %x\n", m->microcode); + if (recordlen >= offsetof(struct mce, cpuid) && m->cpuid) { u32 fam, mod; parse_cpuid(m->cpuid, &fam, &mod); diff -urNp mcelog-d2e13bf0.orig/mcelog.h mcelog-d2e13bf0/mcelog.h --- mcelog-d2e13bf0.orig/mcelog.h 2018-06-28 11:53:15.908862699 -0400 +++ mcelog-d2e13bf0/mcelog.h 2018-06-28 11:54:04.754318009 -0400 @@ -34,6 +34,7 @@ struct mce { __u64 synd; /* MCA_SYND MSR: only valid on SMCA systems */ __u64 ipid; /* MCA_IPID MSR: only valid on SMCA systems */ __u64 ppin; /* Protected Processor Inventory Number */ + __u32 microcode;/* Microcode revision */ }; #define X86_VENDOR_INTEL 0