On Sat, 25 May 2019, at 01:39, Eddie James wrote: > > On 5/21/19 7:02 AM, Arnd Bergmann wrote: > > On Mon, May 20, 2019 at 10:19 PM Eddie James <eajames@xxxxxxxxxxxxx> wrote: > >> diff --git a/include/uapi/linux/aspeed-xdma.h b/include/uapi/linux/aspeed-xdma.h > >> new file mode 100644 > >> index 0000000..2a4bd13 > >> --- /dev/null > >> +++ b/include/uapi/linux/aspeed-xdma.h > >> @@ -0,0 +1,26 @@ > >> +/* SPDX-License-Identifier: GPL-2.0+ */ > >> +/* Copyright IBM Corp 2019 */ > >> + > >> +#ifndef _UAPI_LINUX_ASPEED_XDMA_H_ > >> +#define _UAPI_LINUX_ASPEED_XDMA_H_ > >> + > >> +#include <linux/types.h> > >> + > >> +/* > >> + * aspeed_xdma_op > >> + * > >> + * upstream: boolean indicating the direction of the DMA operation; upstream > >> + * means a transfer from the BMC to the host > >> + * > >> + * host_addr: the DMA address on the host side, typically configured by PCI > >> + * subsystem > >> + * > >> + * len: the size of the transfer in bytes; it should be a multiple of 16 bytes > >> + */ > >> +struct aspeed_xdma_op { > >> + __u32 upstream; > >> + __u64 host_addr; > >> + __u32 len; > >> +}; > >> + > >> +#endif /* _UAPI_LINUX_ASPEED_XDMA_H_ */ > > If this is a user space interface, please remove the holes in the > > data structure. > > > Surely it's 4-byte aligned and there won't be holes?? __u64 is 8-byte aligned, so you have a hole after upstream. Easiest just to put upstream after len? Andrew