Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ACPI: extlog: Clear Extended Error Log status when RAS_CEC handled the error

When both CONFIG_RAS_CEC and CONFIG_ACPI_EXTLOG are enabled, Linux does
not clear the status word of the BIOS supplied error record for corrected
errors. This may prevent logging of subsequent uncorrected errors.

Fix by clearing the status.

Fixes: 23ba710a0864 ("x86/mce: Fix all mce notifiers to update the mce->kflags bitmask")
Reported-by: Erwin Tsaur <erwin.tsaur@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Tony Luck and committed by
Rafael J. Wysocki
38c872a9 72d9b974

+6 -1
+6 -1
drivers/acpi/acpi_extlog.c
··· 145 145 static u32 err_seq; 146 146 147 147 estatus = extlog_elog_entry_check(cpu, bank); 148 - if (estatus == NULL || (mce->kflags & MCE_HANDLED_CEC)) 148 + if (!estatus) 149 149 return NOTIFY_DONE; 150 + 151 + if (mce->kflags & MCE_HANDLED_CEC) { 152 + estatus->block_status = 0; 153 + return NOTIFY_DONE; 154 + } 150 155 151 156 memcpy(elog_buf, (void *)estatus, ELOG_ENTRY_LEN); 152 157 /* clear record status to enable BIOS to update it again */