x86/mce: Add support for new MCA_SYND register
Syndrome information is no longer contained in MCA_STATUS for SMCA systems but in a new register - MCA_SYND. Add a synd field to struct mce to hold MCA_SYND register value. Add it to the end of struct mce to maintain compatibility with old versions of mcelog. Also, add it to the respective tracepoint. Signed-off-by: Yazen Ghannam <Yazen.Ghannam@amd.com> Signed-off-by: Borislav Petkov <bp@suse.de> Link: http://lkml.kernel.org/r/1467633035-32080-1-git-send-email-Yazen.Ghannam@amd.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Šī revīzija ir iekļauta:

revīziju iesūtīja
Thomas Gleixner

vecāks
74ab0e7a83
revīzija
db819d60f6
@@ -569,6 +569,7 @@ static void mce_read_aux(struct mce *m, int i)
|
||||
{
|
||||
if (m->status & MCI_STATUS_MISCV)
|
||||
m->misc = mce_rdmsrl(msr_ops.misc(i));
|
||||
|
||||
if (m->status & MCI_STATUS_ADDRV) {
|
||||
m->addr = mce_rdmsrl(msr_ops.addr(i));
|
||||
|
||||
@@ -581,6 +582,9 @@ static void mce_read_aux(struct mce *m, int i)
|
||||
m->addr <<= shift;
|
||||
}
|
||||
}
|
||||
|
||||
if (mce_flags.smca && (m->status & MCI_STATUS_SYNDV))
|
||||
m->synd = mce_rdmsrl(MSR_AMD64_SMCA_MCx_SYND(i));
|
||||
}
|
||||
|
||||
static bool memory_error(struct mce *m)
|
||||
|
@@ -479,6 +479,9 @@ __log_error(unsigned int bank, bool deferred_err, bool threshold_err, u64 misc)
|
||||
if (m.status & MCI_STATUS_ADDRV)
|
||||
rdmsrl(msr_addr, m.addr);
|
||||
|
||||
if (mce_flags.smca && (m.status & MCI_STATUS_SYNDV))
|
||||
rdmsrl(MSR_AMD64_SMCA_MCx_SYND(bank), m.synd);
|
||||
|
||||
mce_log(&m);
|
||||
|
||||
wrmsrl(msr_status, 0);
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user