Commit 9588397d authored by Tushar Dave's avatar Tushar Dave Committed by Jeff Kirsher

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: 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>
parent 17901e1b
...@@ -55,7 +55,7 @@ struct i40e_dma_mem { ...@@ -55,7 +55,7 @@ struct i40e_dma_mem {
void *va; void *va;
dma_addr_t pa; dma_addr_t pa;
u32 size; u32 size;
} __packed; };
#define i40e_allocate_dma_mem(h, m, unused, s, a) \ #define i40e_allocate_dma_mem(h, m, unused, s, a) \
i40e_allocate_dma_mem_d(h, m, s, a) i40e_allocate_dma_mem_d(h, m, s, a)
...@@ -64,7 +64,7 @@ struct i40e_dma_mem { ...@@ -64,7 +64,7 @@ struct i40e_dma_mem {
struct i40e_virt_mem { struct i40e_virt_mem {
void *va; void *va;
u32 size; u32 size;
} __packed; };
#define i40e_allocate_virt_mem(h, m, s) i40e_allocate_virt_mem_d(h, m, s) #define i40e_allocate_virt_mem(h, m, s) i40e_allocate_virt_mem_d(h, m, s)
#define i40e_free_virt_mem(h, m) i40e_free_virt_mem_d(h, m) #define i40e_free_virt_mem(h, m) i40e_free_virt_mem_d(h, m)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment