Message ID | 20201121105933.3967-1-etienne.carriere@linaro.org |
---|---|
State | Accepted |
Commit | 03699bc75621934f7fb5d5a023007b39fb21ad6b |
Headers | show |
Series | lib/efi_loader: fix ABI in efi_mm_communicate_header | expand |
Thanks Etienne! On Sat, 21 Nov 2020 at 13:00, Etienne Carriere <etienne.carriere@linaro.org> wrote: > > 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> > --- > include/mm_communication.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/mm_communication.h b/include/mm_communication.h > index e464cbb48e..e65fbde60d 100644 > --- a/include/mm_communication.h > +++ b/include/mm_communication.h > @@ -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[]; > -- > 2.17.1 Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
diff --git a/include/mm_communication.h b/include/mm_communication.h index e464cbb48e..e65fbde60d 100644 --- a/include/mm_communication.h +++ b/include/mm_communication.h @@ -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[];
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> --- include/mm_communication.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.17.1