Message ID | 20220630100324.3153655-4-nikos.nikoleris@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | EFI and ACPI support for arm64 | expand |
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@arm.com> > --- > 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@linux.dev>
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);
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@arm.com> --- lib/acpi.h | 8 ++++++++ 1 file changed, 8 insertions(+)