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

ACPI: tables: FPDT: Do not print FW_BUG message if record types are reserved

In ACPI 6.4 spec, record types "0x0002-0xffff" of FPDT Performance Record
Types [1] and record types "0x0003-0xffff" of Runtime Performance Record
Types [2] are reserved.

Users might be confused with the FW_BUG message, and they think this
is the FW issue. Here is the example in a Lenovo box:

ACPI: FPDT 0x00000000A820A000 000044 (v01 LENOVO THINKSYS 00000100 01000013)
ACPI: Reserving FPDT table memory at [mem 0xa820a000-0xa820a043]
ACPI FPDT: [Firmware Bug]: Invalid record 4113 found

So, remove the FW_BUG message to avoid confusion since those types are
reserved in ACPI 6.4 spec.

[1] https://uefi.org/specs/ACPI/6.4/05_ACPI_Software_Programming_Model/ACPI_Software_Programming_Model.html#fpdt-performance-record-types-table
[2] https://uefi.org/specs/ACPI/6.4/05_ACPI_Software_Programming_Model/ACPI_Software_Programming_Model.html#runtime-performance-record-types-table

Signed-off-by: Adrian Huang <ahuang12@lenovo.com>
Acked-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Adrian Huang and committed by
Rafael J. Wysocki
97e03410 2aaea6a1

+3 -4
+3 -4
drivers/acpi/acpi_fpdt.c
··· 220 220 break; 221 221 222 222 default: 223 - pr_err(FW_BUG "Invalid record %d found.\n", record_header->type); 224 - return -EINVAL; 223 + /* Other types are reserved in ACPI 6.4 spec. */ 224 + break; 225 225 } 226 226 } 227 227 return 0; ··· 254 254 subtable->type); 255 255 break; 256 256 default: 257 - pr_info(FW_BUG "Invalid subtable type %d found.\n", 258 - subtable->type); 257 + /* Other types are reserved in ACPI 6.4 spec. */ 259 258 break; 260 259 } 261 260 offset += sizeof(*subtable);