
On 12/16/18 10:32 AM, Ard Biesheuvel wrote:
On Sat, 15 Dec 2018 at 22:40, Heinrich Schuchardt xypron.glpk@gmx.de wrote:
The UEFI Specification Version 2.7 Errata A defines:
"EFI_GUID 128-bit buffer containing a unique identifier value. Unless otherwise specified, aligned on a 64-bit boundary."
Before this patch efi_guid_t was 8-bit aligned.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
Acked-by: Ard Biesheuvel ard.biesheuvel@linaro.org
include/efi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/efi.h b/include/efi.h index b5e2c64f38b..3018c61b373 100644 --- a/include/efi.h +++ b/include/efi.h @@ -49,7 +49,7 @@ struct efi_device_path;
typedef struct { u8 b[16]; -} efi_guid_t; +} efi_guid_t __attribute__ ((aligned (8)));
#define EFI_BITS_PER_LONG (sizeof(long) * 8)
-- 2.19.2
Hello Alex,
we should carefully evaluate which side effects this patch has. The system table contains a link to an array of struct efi_configuration_table. On 32 bit-systems the patch changes the size of the entries from 20 to 24 bytes.
So at least this structure we will have to changed to __packed to stay in sync with GRUB and Linux.
It is unfortunate that the UEFI spec has been written with little detail on the alignment of structures. Cf. Takahiro's patches concerning the HII protocols.
Best regards
Heinrich