ACPI: tables: FPDT: Do not print FW_BUG message if record types are reserved
authorAdrian Huang <ahuang12@lenovo.com>
Thu, 19 Aug 2021 07:14:16 +0000 (15:14 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 25 Aug 2021 18:01:07 +0000 (20:01 +0200)
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>
drivers/acpi/acpi_fpdt.c

index 4ee2ad2..6922a44 100644 (file)
@@ -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;
@@ -254,8 +254,7 @@ static int __init acpi_init_fpdt(void)
                                              subtable->type);
                        break;
                default:
-                       pr_info(FW_BUG "Invalid subtable type %d found.\n",
-                              subtable->type);
+                       /* Other types are reserved in ACPI 6.4 spec. */
                        break;
                }
                offset += sizeof(*subtable);