On Thu, Jun 30, 2022 at 11:03:00AM +0100, Nikos Nikoleris wrote: > All ACPI table definitions are provided with precise definitions of > field sizes and offsets, make sure that no compiler optimization can > interfere with the memory layout of the corresponding structs. > > Signed-off-by: Nikos Nikoleris <nikos.nikoleris@xxxxxxx> > --- > lib/acpi.h | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/lib/acpi.h b/lib/acpi.h > index 456e62d..b853a55 100644 > --- a/lib/acpi.h > +++ b/lib/acpi.h > @@ -3,6 +3,12 @@ > > #include "libcflat.h" > > +/* > + * All tables and structures must be byte-packed to match the ACPI > + * specification, since the tables are provided by the system BIOS > + */ > +#pragma pack(1) > + > #define ACPI_SIGNATURE(c1, c2, c3, c4) \ > ((c1) | ((c2) << 8) | ((c3) << 16) | ((c4) << 24)) > > @@ -106,6 +112,8 @@ struct facs_descriptor_rev1 > u8 reserved3 [40]; /* Reserved - must be zero */ > }; > > +#pragma pack(0) > + > void set_efi_rsdp(struct rsdp_descriptor *rsdp); > void* find_acpi_table_addr(u32 sig); > > -- > 2.25.1 > Reviewed-by: Andrew Jones <andrew.jones@xxxxxxxxx>