[Intel-wired-lan] [PATCH] i40e: remove unnecessary __packed
Bowers, AndrewX
andrewx.bowers at intel.com
Wed Nov 23 15:52:40 UTC 2016
> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Tushar Dave
> Sent: Saturday, November 19, 2016 1:54 PM
> To: Kirsher, Jeffrey T <jeffrey.t.kirsher at intel.com>; intel-wired-
> lan at lists.osuosl.org; netdev at vger.kernel.org
> Subject: [Intel-wired-lan] [PATCH] i40e: remove unnecessary __packed
>
> 'struct i40e_dma_mem' defined with 'packed' directive causing kernel
> unaligned errors on sparc.
>
> e.g.
> i40e: Intel(R) Ethernet Connection XL710 Network Driver - version 1.6.16-k
> i40e: Copyright (c) 2013 - 2014 Intel Corporation.
> Kernel unaligned access at TPC[44894c]
> dma_4v_alloc_coherent+0x1ac/0x300 Kernel unaligned access at
> TPC[44894c] dma_4v_alloc_coherent+0x1ac/0x300 Kernel unaligned access
> at TPC[44894c] dma_4v_alloc_coherent+0x1ac/0x300 Kernel unaligned
> access at TPC[44894c] dma_4v_alloc_coherent+0x1ac/0x300 Kernel
> unaligned access at TPC[44894c] dma_4v_alloc_coherent+0x1ac/0x300 i40e
> 0000:03:00.0: fw 5.1.40981 api 1.5 nvm 5.04 0x80002548 0.0.0
>
> This can be fixed with get_unaligned/put_unaligned(). However no
> reference in driver shows that 'struct i40e_dma_mem' directly shoved into
> NIC hardware. But instead fields of the struct are being read and used for
> hardware. Therefore, __packed is unnecessary for 'struct i40e_dma_mem'.
>
> In addition, although 'struct i40e_virt_mem' doesn't cause any unaligned
> access, keeping it packed is unnecessary as well because of aforementioned
> reason.
>
> This change make 'struct i40e_dma_mem' and 'struct i40e_virt_mem'
> unpacked.
>
> Signed-off-by: Tushar Dave <tushar.n.dave at oracle.com>
> ---
> drivers/net/ethernet/intel/i40e/i40e_osdep.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
Tested-by: Andrew Bowers <andrewx.bowers at intel.com>
More information about the Intel-wired-lan
mailing list