ACPICA: Fix FADT 32/64X length mismatch warning

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
This commit is contained in:
Abdelkader Boudih 2026-05-27 19:55:21 +02:00 committed by Rafael J. Wysocki
parent 3f27eb64c5
commit 15a07a5a96

View 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,