On Wed, Sep 09, 2020 at 02:33:20PM +0200, Wolfgang Wallner wrote: > Currently, the calculation for the length of the DSDT table includes any > bytes that are added for alignment, but those bytes are not initialized. > > This is because the DSDT length is calculated after a call to > acpi_inc_align(). Split this up into the following sequence: > > * acpi_inc() > * Calculate DSDT length > * acpi_align()
Perhaps Fixes: tag? In any case, Reviewed-by: Andy Shevchenko <andriy.shevche...@linux.intel.com> > Signed-off-by: Wolfgang Wallner <wolfgang.wall...@br-automation.com> > > --- > > arch/x86/lib/acpi_table.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/lib/acpi_table.c b/arch/x86/lib/acpi_table.c > index 3a93fedfc3..6b827bfa3f 100644 > --- a/arch/x86/lib/acpi_table.c > +++ b/arch/x86/lib/acpi_table.c > @@ -427,7 +427,7 @@ ulong write_acpi_tables(ulong start_addr) > (char *)&AmlCode + sizeof(struct acpi_table_header), > dsdt->length - sizeof(struct acpi_table_header)); > > - acpi_inc_align(ctx, dsdt->length - sizeof(struct acpi_table_header)); > + acpi_inc(ctx, dsdt->length - sizeof(struct acpi_table_header)); > > /* Pack GNVS into the ACPI table area */ > for (i = 0; i < dsdt->length; i++) { > @@ -450,6 +450,8 @@ ulong write_acpi_tables(ulong start_addr) > dsdt->checksum = 0; > dsdt->checksum = table_compute_checksum((void *)dsdt, dsdt->length); > > + acpi_align(ctx); > + > /* > * Fill in platform-specific global NVS variables. If this fails we > * cannot return the error but this should only happen while debugging. > -- > 2.28.0 > > -- With Best Regards, Andy Shevchenko