|
@@ -506,16 +506,22 @@ static void __ghes_print_estatus(const char *pfx,
|
|
|
const struct acpi_hest_generic *generic,
|
|
|
const struct acpi_hest_generic_status *estatus)
|
|
|
{
|
|
|
+ static atomic_t seqno;
|
|
|
+ unsigned int curr_seqno;
|
|
|
+ char pfx_seq[64];
|
|
|
+
|
|
|
if (pfx == NULL) {
|
|
|
if (ghes_severity(estatus->error_severity) <=
|
|
|
GHES_SEV_CORRECTED)
|
|
|
- pfx = KERN_WARNING HW_ERR;
|
|
|
+ pfx = KERN_WARNING;
|
|
|
else
|
|
|
- pfx = KERN_ERR HW_ERR;
|
|
|
+ pfx = KERN_ERR;
|
|
|
}
|
|
|
+ curr_seqno = atomic_inc_return(&seqno);
|
|
|
+ snprintf(pfx_seq, sizeof(pfx_seq), "%s{%u}" HW_ERR, pfx, curr_seqno);
|
|
|
printk("%s""Hardware error from APEI Generic Hardware Error Source: %d\n",
|
|
|
- pfx, generic->header.source_id);
|
|
|
- apei_estatus_print(pfx, estatus);
|
|
|
+ pfx_seq, generic->header.source_id);
|
|
|
+ apei_estatus_print(pfx_seq, estatus);
|
|
|
}
|
|
|
|
|
|
static int ghes_print_estatus(const char *pfx,
|
|
@@ -798,7 +804,7 @@ static int ghes_notify_nmi(unsigned int cmd, struct pt_regs *regs)
|
|
|
|
|
|
if (sev_global >= GHES_SEV_PANIC) {
|
|
|
oops_begin();
|
|
|
- __ghes_print_estatus(KERN_EMERG HW_ERR, ghes_global->generic,
|
|
|
+ __ghes_print_estatus(KERN_EMERG, ghes_global->generic,
|
|
|
ghes_global->estatus);
|
|
|
/* reboot to log the error! */
|
|
|
if (panic_timeout == 0)
|