• Tushar Dave's avatar
    i40e: remove unnecessary __packed · 9588397d
    Tushar Dave authored
    '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: default avatarTushar Dave <tushar.n.dave@oracle.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    9588397d
i40e_osdep.h 2.72 KB