From mboxrd@z Thu Jan 1 00:00:00 1970 From: Florian Fainelli Subject: Re: [PATCH] net: nixge: Add __packed attribute to DMA descriptor struct Date: Tue, 19 Jun 2018 10:13:55 -0700 Message-ID: <832bebb8-300d-e911-2946-5edfe82dc30a@gmail.com> References: <20180619165453.31894-1-mdf@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: keescook@chromium.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org To: Moritz Fischer , davem@davemloft.net Return-path: In-Reply-To: <20180619165453.31894-1-mdf@kernel.org> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org 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 > --- > > 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