ACPI: APEI: Better fix to avoid spamming the console with old error logs
authorTony Luck <tony.luck@intel.com>
Wed, 22 Jun 2022 17:09:06 +0000 (10:09 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 29 Jun 2022 17:55:11 +0000 (19:55 +0200)
commitc3481b6b75b4797657838f44028fd28226ab48e0
tree47fed6f7177f4f21fdb6dd967755f0d3b138256f
parent55b350529e799f8a1a1636dea7df1749cb78ce39
ACPI: APEI: Better fix to avoid spamming the console with old error logs

The fix in commit 3f8dec116210 ("ACPI/APEI: Limit printable size of BERT
table data") does not work as intended on systems where the BIOS has a
fixed size block of memory for the BERT table, relying on s/w to quit
when it finds a record with estatus->block_status == 0. On these systems
all errors are suppressed because the check:

if (region_len < ACPI_BERT_PRINT_MAX_LEN)

always fails.

New scheme skips individual CPER records that are too large, and also
limits the total number of records that will be printed to 5.

Fixes: 3f8dec116210 ("ACPI/APEI: Limit printable size of BERT table data")
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/apei/bert.c