The end of the ACPI table is set to 'addr' instead of 'end'. The ACPI
code for QEMU relies on those values to mark memory as 'ACPI Reclaim'
and as a result the ACPI RSDP ends up in Boot services Data.

Reported-by: bj...@kernel.org
Fixes: commit 638cc363484b ("acpi: enable writing ACPI tables on QEMU")
Signed-off-by: Ilias Apalodimas <ilias.apalodi...@linaro.org>
---
 drivers/misc/qfw_acpi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/misc/qfw_acpi.c b/drivers/misc/qfw_acpi.c
index 0d0cf7646890..77cebae5e3fd 100644
--- a/drivers/misc/qfw_acpi.c
+++ b/drivers/misc/qfw_acpi.c
@@ -305,7 +305,7 @@ static int evt_write_acpi_tables(void)
        /* Generate ACPI tables */
        end = write_acpi_tables(addr);
        gd->arch.table_start = addr;
-       gd->arch.table_end = addr;
+       gd->arch.table_end = end;

        return 0;
 }
--
2.49.0

Reply via email to