ice: update xdp_features with xdp multi-buff
Now ice driver supports xdp multi-buffer so add it to xdp_features. Check vsi type before setting xdp_features flag. Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com> Link: https://lore.kernel.org/r/8a4781511ab6e3cd280e944eef69158954f1a15f.1676385351.git.lorenzo@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Родитель
9dd6e53ef6
Коммит
b6a4103c35
|
@ -2912,7 +2912,7 @@ ice_xdp_setup_prog(struct ice_vsi *vsi, struct bpf_prog *prog,
|
|||
if (xdp_ring_err)
|
||||
NL_SET_ERR_MSG_MOD(extack, "Setting up XDP Tx resources failed");
|
||||
}
|
||||
xdp_features_set_redirect_target(vsi->netdev, false);
|
||||
xdp_features_set_redirect_target(vsi->netdev, true);
|
||||
/* reallocate Rx queues that are used for zero-copy */
|
||||
xdp_ring_err = ice_realloc_zc_buf(vsi, true);
|
||||
if (xdp_ring_err)
|
||||
|
@ -3333,10 +3333,11 @@ static void ice_napi_add(struct ice_vsi *vsi)
|
|||
|
||||
/**
|
||||
* ice_set_ops - set netdev and ethtools ops for the given netdev
|
||||
* @netdev: netdev instance
|
||||
* @vsi: the VSI associated with the new netdev
|
||||
*/
|
||||
static void ice_set_ops(struct net_device *netdev)
|
||||
static void ice_set_ops(struct ice_vsi *vsi)
|
||||
{
|
||||
struct net_device *netdev = vsi->netdev;
|
||||
struct ice_pf *pf = ice_netdev_to_pf(netdev);
|
||||
|
||||
if (ice_is_safe_mode(pf)) {
|
||||
|
@ -3348,6 +3349,13 @@ static void ice_set_ops(struct net_device *netdev)
|
|||
netdev->netdev_ops = &ice_netdev_ops;
|
||||
netdev->udp_tunnel_nic_info = &pf->hw.udp_tunnel_nic;
|
||||
ice_set_ethtool_ops(netdev);
|
||||
|
||||
if (vsi->type != ICE_VSI_PF)
|
||||
return;
|
||||
|
||||
netdev->xdp_features = NETDEV_XDP_ACT_BASIC | NETDEV_XDP_ACT_REDIRECT |
|
||||
NETDEV_XDP_ACT_XSK_ZEROCOPY |
|
||||
NETDEV_XDP_ACT_RX_SG;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -4568,9 +4576,7 @@ static int ice_cfg_netdev(struct ice_vsi *vsi)
|
|||
np->vsi = vsi;
|
||||
|
||||
ice_set_netdev_features(netdev);
|
||||
netdev->xdp_features = NETDEV_XDP_ACT_BASIC | NETDEV_XDP_ACT_REDIRECT |
|
||||
NETDEV_XDP_ACT_XSK_ZEROCOPY;
|
||||
ice_set_ops(netdev);
|
||||
ice_set_ops(vsi);
|
||||
|
||||
if (vsi->type == ICE_VSI_PF) {
|
||||
SET_NETDEV_DEV(netdev, ice_pf_to_dev(vsi->back));
|
||||
|
|
Загрузка…
Ссылка в новой задаче