On 06/19/2018 09:54 AM, Moritz Fischer wrote: > Add __packed attribute to DMA descriptor structure in order to > make sure that the DMA engine's alignemnt requirements are met. > > Fixes commit 492caffa8a1a ("net: ethernet: nixge: Add support for > National Instruments XGE netdev") > Signed-off-by: Moritz Fischer <m...@kernel.org> > --- > > Hi David, > > this addresses an issue where padding occured breaking the alignment > in the array the descriptors are allocated in coherent memory. > This was discovered when we tried to bring up the driver via a PCIe > bridge on x86.
How could padding be inserted given than all of the structure members are naturally aligned (all u32 type). Compiler bug? Also > > Thanks, > > Moritz > > --- > drivers/net/ethernet/ni/nixge.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/ni/nixge.c b/drivers/net/ethernet/ni/nixge.c > index 09f674ec0f9e..fea0e994324b 100644 > --- a/drivers/net/ethernet/ni/nixge.c > +++ b/drivers/net/ethernet/ni/nixge.c > @@ -122,7 +122,7 @@ struct nixge_hw_dma_bd { > u32 sw_id_offset; > u32 reserved5; > u32 reserved6; > -}; > +} __packed; > > struct nixge_tx_skb { > struct sk_buff *skb; > -- Florian