Commit 1e405c1a authored by Björn Töpel's avatar Björn Töpel Committed by Daniel Borkmann
Browse files

xsk: do not remove umem from netdevice on fall-back to copy-mode



Commit c9b47cc1 ("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: c9b47cc1 ("xsk: fix bug when trying to use both copy and zero-copy on one queue id")
Signed-off-by: default avatarBjörn Töpel <bjorn.topel@intel.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
parent e451eb51
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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;