Message ID | 20210818063831.1349-1-adrianhuang0701@gmail.com |
---|---|
State | New |
Headers | show |
Series | [1/1] ACPI: tables: FPDT: Do not print FW_BUG message if subtable types are reserved | expand |
On Thu, Aug 19, 2021 at 10:56 AM Zhang Rui <rui.zhang@intel.com> wrote: > > On Wed, 2021-08-18 at 14:38 +0800, Adrian Huang wrote: > > From: Adrian Huang <ahuang12@lenovo.com> > > > > Table 5.90 "Runtime Performance Record Types" in ACPI 6.4 spec [1] > > says: > > > > These type values "0x0003-0xFFFF" of Runtime Performance Record > > Types > > are reserved for ACPI spec usage, platform vendor usage, hardware > > vendor usage, platform firmware vendor usage and future use. > > > > 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 subtable > > 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#firmware-performance-data-table-fpdt > > > > In > https://uefi.org/specs/ACPI/6.4/05_ACPI_Software_Programming_Model/ACPI_Software_Programming_Model.html#fpdt-performance-record-types > it also mentions that "0x0002-0xFFFF" of FPDT Performance Record Types > are reserved, so it's better to fix them all in one patch? Ah, I missed that. Will send the v2 patch later. -- Adrian
diff --git a/drivers/acpi/acpi_fpdt.c b/drivers/acpi/acpi_fpdt.c index 4ee2ad234e3d..568f26a7490a 100644 --- a/drivers/acpi/acpi_fpdt.c +++ b/drivers/acpi/acpi_fpdt.c @@ -220,8 +220,8 @@ static int fpdt_process_subtable(u64 address, u32 subtable_type) break; default: - pr_err(FW_BUG "Invalid record %d found.\n", record_header->type); - return -EINVAL; + /* Other types are reserved in ACPI 6.4 spec. */ + break; } } return 0;