]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ACPICA: Fix FADT 32/64X length mismatch warning
authorAbdelkader Boudih <oss@seuros.com>
Wed, 27 May 2026 17:55:21 +0000 (19:55 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 27 May 2026 18:18:45 +0000 (20:18 +0200)
When the 64-bit address is set but bit_width is 0, the spec says
the legacy length should be used. That is valid firmware.

Skip the warning if bit_width is 0.

This avoids false warnings like:
  32/64X length mismatch in FADT/gpe0_block: 128/0

Tested on free_BSD 16.0-CURRENT.

Link: https://github.com/acpica/acpica/commit/b6387a387c51
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://patch.msgid.link/8688362.T7Z3S40VBb@rafael.j.wysocki
drivers/acpi/acpica/tbfadt.c

index c6658b2f3027b27f9c871f528c08afe3b0c94982..80d3a39a82d7ca426f4e34b382836ad9ee192427 100644 (file)
@@ -553,8 +553,11 @@ static void acpi_tb_convert_fadt(void)
                                 * Note: If the legacy length field is > 0xFF bits, ignore
                                 * this check. (GPE registers can be larger than the
                                 * 64-bit GAS structure can accommodate, 0xFF bits).
+                                * Also skip if bit_width is 0, indicating the 64-bit field
+                                * was not populated - legacy length will be used instead.
                                 */
                                if ((ACPI_MUL_8(length) <= ACPI_UINT8_MAX) &&
+                                   (address64->bit_width != 0) &&
                                    (address64->bit_width !=
                                     ACPI_MUL_8(length))) {
                                        ACPI_BIOS_WARNING((AE_INFO,