lib/efi_loader: fix ABI in efi_mm_communicate_header
authorEtienne Carriere <etienne.carriere@linaro.org>
Sat, 21 Nov 2020 10:59:33 +0000 (11:59 +0100)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Sun, 29 Nov 2020 04:18:37 +0000 (05:18 +0100)
Pack struct efi_mm_communicate_header as done in EDK2 as seen in
release 201808 [1]. If not packed sizeof() for the structure adds
4 additional bytes on 32bit targets which breaks the ABI.

Link: [1] https://github.com/tianocore/edk2/blob/edk2-stable201808/MdePkg/Include/Protocol/MmCommunication.h#L21
Fixes: 23a397d2e2fb ("efi_loader: Add headers for EDK2 StandAloneMM communication")
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
include/mm_communication.h

index e464cbb..e65fbde 100644 (file)
@@ -43,7 +43,7 @@
  * To avoid confusion in interpreting frames, the communication buffer should
  * always begin with efi_mm_communicate_header.
  */
-struct efi_mm_communicate_header {
+struct __packed efi_mm_communicate_header {
        efi_guid_t header_guid;
        size_t     message_len;
        u8         data[];