xsk: do not remove umem from netdevice on fall-back to copy-mode
Commitc9b47cc1fa
("xsk: fix bug when trying to use both copy and zero-copy on one queue id") stores the umem into the netdev._rx struct. However, the patch incorrectly removed the umem from the netdev._rx struct when user-space passed "best-effort" mode (i.e. select the fastest possible option available), and zero-copy mode was not available. This commit fixes that. Fixes:c9b47cc1fa
("xsk: fix bug when trying to use both copy and zero-copy on one queue id") Signed-off-by: Björn Töpel <bjorn.topel@intel.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
parent
e451eb5106
commit
1e405c1a3f
|
@ -125,9 +125,10 @@ int xdp_umem_assign_dev(struct xdp_umem *umem, struct net_device *dev,
|
|||
return 0;
|
||||
|
||||
err_unreg_umem:
|
||||
xdp_clear_umem_at_qid(dev, queue_id);
|
||||
if (!force_zc)
|
||||
err = 0; /* fallback to copy mode */
|
||||
if (err)
|
||||
xdp_clear_umem_at_qid(dev, queue_id);
|
||||
out_rtnl_unlock:
|
||||
rtnl_unlock();
|
||||
return err;
|
||||
|
|
Loading…
Reference in New Issue