[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-2.6] acpi: fix bios linker loadder COMMAND_A
Re: [Qemu-devel] [PATCH for-2.6] acpi: fix bios linker loadder COMMAND_ALLOCATE on bigendian host
Fri, 29 Apr 2016 15:45:19 +0200
On Fri, 29 Apr 2016 15:16:07 +0200
Laurent Vivier <address@hidden> wrote:
> On 29/04/2016 14:44, Igor Mammedov wrote:
> > 'make check' fails with:
> > ERROR:tests/bios-tables-test.c:493:load_expected_aml:
> > assertion failed: (g_file_test(aml_file, G_FILE_TEST_EXISTS))
> > since commit:
> > caf50c7166a6ed96c462ab5db4b495e1234e4cc6
> > tests: pc: acpi: drop not needed 'expected SSDT' blobs
> > Assert happens because qemu-system-x86_64 generates
> > SSDT table and test looks for a corresponding expected
> > table to compare with.
> > However there is no expected SSDT blob anymore, since
> > QEMU souldn't generate one. As it happens BIOS is not
> > able to read ACPI tables from QEMU and fallbacks to
> > embeded legacy ACPI codepath, which generates SSDT.
> > That happens due to wrongly sized endiannes conversion
> > which makes
> > uint8_t BiosLinkerLoaderEntry.alloc.zone
> > end up with 0 due to truncation of 32 bit integer
> > which on host is 1 or 2.
> > Fix it by dropping invalid cpu_to_le32() as uint8_t
> > doesn't require any conversion.
> > RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1330174
> > Signed-off-by: Igor Mammedov <address@hidden>
> Tested-by: Laurent Vivier <address@hidden>
> Fix the problem.
> We have always some warnings but they were already here in the previous
That warnings are due to broken endianess handling in iasl,
it looks at table header size and says it's too big
because it doesn't take into account that all integers in ACPI