> On 22. juuni 2017, at 21:23, Dimitry Andric <d...@freebsd.org> wrote: > > On 22 Jun 2017, at 16:30, Ed Maste <ema...@freebsd.org> wrote: >> >> Author: emaste >> Date: Thu Jun 22 14:30:09 2017 >> New Revision: 320234 >> URL: https://svnweb.freebsd.org/changeset/base/320234 >> >> Log: >> Make structure padding explicit in EFI_MEMORY_DESCRIPTOR >> >> The EFI memory descriptor 64-bit aligns PhysicalStart on both 32- and >> 64-bit platforms. Make the padding explicit for i386 EFI. >> >> Submitted by: Siva Mahadevan <smahade...@freebsdfoundation.org> >> MFC after: 3 weeks >> Sponsored by: The FreeBSD Foundation >> Differential Revision: https://reviews.freebsd.org/D11301 >> >> Modified: >> head/sys/boot/efi/include/efidef.h >> >> Modified: head/sys/boot/efi/include/efidef.h >> ============================================================================== >> --- head/sys/boot/efi/include/efidef.h Thu Jun 22 13:31:44 2017 >> (r320233) >> +++ head/sys/boot/efi/include/efidef.h Thu Jun 22 14:30:09 2017 >> (r320234) >> @@ -178,6 +178,7 @@ typedef enum { >> #define EFI_MEMORY_DESCRIPTOR_VERSION 1 >> typedef struct { >> UINT32 Type; // Field size is 32 bits >> followed by 32 bit pad >> + UINT32 Pad; >> EFI_PHYSICAL_ADDRESS PhysicalStart; // Field size is 64 bits >> EFI_VIRTUAL_ADDRESS VirtualStart; // Field size is 64 bits >> UINT64 NumberOfPages; // Field size is 64 bits > > If you explicitly insert padding, it is better to mark the struct as > __packed, I think. Or at least also specify the alignment explicitly. > > -Dimitry >
There is also second one with the same issue: in sys/boot/efi/include/efiprot.h @@ -90,12 +90,14 @@ typedef struct { BOOLEAN LogicalPartition; BOOLEAN ReadOnly; BOOLEAN WriteCaching; + UINT8 pad1[3]; UINT32 BlockSize; UINT32 IoAlign; + UINT8 pad2[4]; EFI_LBA LastBlock; -} EFI_BLOCK_IO_MEDIA; +} __packed EFI_BLOCK_IO_MEDIA; Without this, the EFI32 will get disk sizes wrong. rgds, toomas _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"