mirror of https://gitee.com/openkylin/linux.git
i40e: fix xdp handle calculations
Commit4c5d9a7fa1
("i40e: fix xdp handle calculations") reintroduced the addition of the umem headroom to the xdp handle in the i40e_zca_free, i40e_alloc_buffer_slow_zc and i40e_alloc_buffer_zc functions. However, the headroom is already added to the handle in the function i40_run_xdp_zc. This commit removes the latter addition and fixes the case where the headroom is non-zero. Fixes:4c5d9a7fa1
("i40e: fix xdp handle calculations") Signed-off-by: Ciara Loftus <ciara.loftus@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
parent
4ce150b6a4
commit
168dfc3a77
|
@ -192,9 +192,9 @@ static int i40e_run_xdp_zc(struct i40e_ring *rx_ring, struct xdp_buff *xdp)
|
|||
{
|
||||
struct xdp_umem *umem = rx_ring->xsk_umem;
|
||||
int err, result = I40E_XDP_PASS;
|
||||
u64 offset = umem->headroom;
|
||||
struct i40e_ring *xdp_ring;
|
||||
struct bpf_prog *xdp_prog;
|
||||
u64 offset;
|
||||
u32 act;
|
||||
|
||||
rcu_read_lock();
|
||||
|
@ -203,7 +203,7 @@ static int i40e_run_xdp_zc(struct i40e_ring *rx_ring, struct xdp_buff *xdp)
|
|||
*/
|
||||
xdp_prog = READ_ONCE(rx_ring->xdp_prog);
|
||||
act = bpf_prog_run_xdp(xdp_prog, xdp);
|
||||
offset += xdp->data - xdp->data_hard_start;
|
||||
offset = xdp->data - xdp->data_hard_start;
|
||||
|
||||
xdp->handle = xsk_umem_adjust_offset(umem, xdp->handle, offset);
|
||||
|
||||
|
|
Loading…
Reference in New Issue