One of the recurring complaints is that we do not have, as a driver writer, a central location from which we would be fed offloading rules into a NIC. This was brought up again during Netconf'18 in Boston.
This patch just renames ndo_setup_tc to ndo_setup_offload as a very early initial work to prepare for follow up patches that discuss/propose unified flow representation for the existing offload programming APIs: ethtool_rxnfc, cls_flower, cls_u32 and (probably, not yet upstream) conntrack. Signed-off-by: Pablo Neira Ayuso <pa...@netfilter.org> --- drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 6 +++--- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 6 +++--- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 4 ++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 +++--- drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c | 6 +++--- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 6 +++--- drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 6 +++--- drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 6 +++--- drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 6 +++--- drivers/net/ethernet/intel/i40e/i40e_main.c | 6 +++--- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 8 ++++---- drivers/net/ethernet/intel/igb/igb_main.c | 6 +++--- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 6 +++--- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 9 +++++---- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 6 +++--- drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 6 +++--- drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 6 +++--- drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 2 +- drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 2 +- drivers/net/ethernet/netronome/nfp/nfp_port.c | 4 ++-- drivers/net/ethernet/netronome/nfp/nfp_port.h | 4 ++-- drivers/net/ethernet/sfc/efx.c | 2 +- drivers/net/ethernet/sfc/efx.h | 4 ++-- drivers/net/ethernet/sfc/falcon/efx.c | 2 +- drivers/net/ethernet/sfc/falcon/efx.h | 4 ++-- drivers/net/ethernet/sfc/tx.c | 4 ++-- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 6 +++--- drivers/net/ethernet/ti/netcp_core.c | 6 +++--- drivers/net/netdevsim/netdev.c | 5 +++-- include/linux/netdevice.h | 18 +++++++++--------- net/dsa/slave.c | 7 ++++--- net/sched/cls_api.c | 6 +++--- net/sched/sch_cbs.c | 8 ++++---- net/sched/sch_etf.c | 8 ++++---- net/sched/sch_mq.c | 8 ++++---- net/sched/sch_mqprio.c | 16 ++++++++-------- net/sched/sch_prio.c | 15 ++++++++------- net/sched/sch_red.c | 15 ++++++++------- 39 files changed, 129 insertions(+), 124 deletions(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c index 24f1053b8785..766864a35648 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c @@ -2246,8 +2246,8 @@ static void xgbe_poll_controller(struct net_device *netdev) } #endif /* End CONFIG_NET_POLL_CONTROLLER */ -static int xgbe_setup_tc(struct net_device *netdev, enum tc_setup_type type, - void *type_data) +static int xgbe_setup_offload(struct net_device *netdev, + enum tc_setup_type type, void *type_data) { struct xgbe_prv_data *pdata = netdev_priv(netdev); struct tc_mqprio_qopt *mqprio = type_data; @@ -2501,7 +2501,7 @@ static const struct net_device_ops xgbe_netdev_ops = { #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = xgbe_poll_controller, #endif - .ndo_setup_tc = xgbe_setup_tc, + .ndo_setup_offload = xgbe_setup_offload, .ndo_fix_features = xgbe_fix_features, .ndo_set_features = xgbe_set_features, .ndo_udp_tunnel_add = xgbe_udp_tunnel_add, diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c index 5a727d4729da..200a5938dfe5 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c @@ -4228,7 +4228,7 @@ void bnx2x_get_c2s_mapping(struct bnx2x *bp, u8 *c2s_map, u8 *c2s_default) * @netdev: net device to configure * @tc: number of traffic classes to enable * - * callback connected to the ndo_setup_tc function pointer + * callback connected to the ndo_setup_offload function pointer */ int bnx2x_setup_tc(struct net_device *dev, u8 num_tc) { @@ -4293,8 +4293,8 @@ int bnx2x_setup_tc(struct net_device *dev, u8 num_tc) return 0; } -int __bnx2x_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +int __bnx2x_setup_offload(struct net_device *dev, enum tc_setup_type type, + void *type_data) { struct tc_mqprio_qopt *mqprio = type_data; diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h index 0e508e5defce..e3df86f8d140 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h @@ -486,8 +486,8 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev); /* setup_tc callback */ int bnx2x_setup_tc(struct net_device *dev, u8 num_tc); -int __bnx2x_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data); +int __bnx2x_setup_offload(struct net_device *dev, enum tc_setup_type type, + void *type_data); int bnx2x_get_vf_config(struct net_device *dev, int vf, struct ifla_vf_info *ivi); diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index 71362b7f6040..b238f3478a2f 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c @@ -13116,7 +13116,7 @@ static const struct net_device_ops bnx2x_netdev_ops = { #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = poll_bnx2x, #endif - .ndo_setup_tc = __bnx2x_setup_tc, + .ndo_setup_offload = __bnx2x_setup_offload, #ifdef CONFIG_BNX2X_SRIOV .ndo_set_vf_mac = bnx2x_set_vf_mac, .ndo_set_vf_vlan = bnx2x_set_vf_vlan, diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index d2dadade1d0e..e38e1cdd4e02 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -7993,8 +7993,8 @@ static int bnxt_setup_tc_block(struct net_device *dev, } } -static int bnxt_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int bnxt_setup_offload(struct net_device *dev, enum tc_setup_type type, + void *type_data) { switch (type) { case TC_SETUP_BLOCK: @@ -8377,7 +8377,7 @@ static const struct net_device_ops bnxt_netdev_ops = { #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = bnxt_poll_controller, #endif - .ndo_setup_tc = bnxt_setup_tc, + .ndo_setup_offload = bnxt_setup_offload, #ifdef CONFIG_RFS_ACCEL .ndo_rx_flow_steer = bnxt_rx_flow_steer, #endif diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c index e31f5d803c13..76abfd943d7c 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c @@ -183,8 +183,8 @@ static int bnxt_vf_rep_setup_tc_block(struct net_device *dev, } } -static int bnxt_vf_rep_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int bnxt_vf_rep_setup_offload(struct net_device *dev, + enum tc_setup_type type, void *type_data) { switch (type) { case TC_SETUP_BLOCK: @@ -263,7 +263,7 @@ static const struct net_device_ops bnxt_vf_rep_netdev_ops = { .ndo_stop = bnxt_vf_rep_close, .ndo_start_xmit = bnxt_vf_rep_xmit, .ndo_get_stats64 = bnxt_vf_rep_get_stats64, - .ndo_setup_tc = bnxt_vf_rep_setup_tc, + .ndo_setup_offload = bnxt_vf_rep_setup_offload, .ndo_get_phys_port_name = bnxt_vf_rep_get_phys_port_name }; diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c index 40cf8dc9f163..899fe9921bdf 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c @@ -3027,8 +3027,8 @@ static int cxgb_setup_tc_block(struct net_device *dev, } } -static int cxgb_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int cxgb_setup_offload(struct net_device *dev, enum tc_setup_type type, + void *type_data) { switch (type) { case TC_SETUP_BLOCK: @@ -3236,7 +3236,7 @@ static const struct net_device_ops cxgb4_netdev_ops = { .ndo_fcoe_disable = cxgb_fcoe_disable, #endif /* CONFIG_CHELSIO_T4_FCOE */ .ndo_set_tx_maxrate = cxgb_set_tx_maxrate, - .ndo_setup_tc = cxgb_setup_tc, + .ndo_setup_offload = cxgb_setup_offload, .ndo_udp_tunnel_add = cxgb_add_udp_tunnel, .ndo_udp_tunnel_del = cxgb_del_udp_tunnel, .ndo_features_check = cxgb_features_check, diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c index 65a22cd9aef2..1537e92d147c 100644 --- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c @@ -346,8 +346,8 @@ static void dpaa_get_stats64(struct net_device *net_dev, } } -static int dpaa_setup_tc(struct net_device *net_dev, enum tc_setup_type type, - void *type_data) +static int dpaa_setup_offload(struct net_device *net_dev, + enum tc_setup_type type, void *type_data) { struct dpaa_priv *priv = netdev_priv(net_dev); struct tc_mqprio_qopt *mqprio = type_data; @@ -2619,7 +2619,7 @@ static const struct net_device_ops dpaa_ops = { .ndo_validate_addr = eth_validate_addr, .ndo_set_rx_mode = dpaa_set_rx_mode, .ndo_do_ioctl = dpaa_ioctl, - .ndo_setup_tc = dpaa_setup_tc, + .ndo_setup_offload = dpaa_setup_offload, }; static int dpaa_napi_add(struct net_device *net_dev) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c index c211450bfd78..b5fdafff1ff7 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c @@ -1368,8 +1368,8 @@ static int hns3_setup_tc(struct net_device *netdev, void *type_data) return ret; } -static int hns3_nic_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int hns3_nic_setup_offload(struct net_device *dev, + enum tc_setup_type type, void *type_data) { if (type != TC_SETUP_QDISC_MQPRIO) return -EOPNOTSUPP; @@ -1543,7 +1543,7 @@ static const struct net_device_ops hns3_nic_netdev_ops = { .ndo_change_mtu = hns3_nic_change_mtu, .ndo_set_features = hns3_nic_set_features, .ndo_get_stats64 = hns3_nic_get_stats64, - .ndo_setup_tc = hns3_nic_setup_tc, + .ndo_setup_offload = hns3_nic_setup_offload, .ndo_set_rx_mode = hns3_nic_set_rx_mode, .ndo_vlan_rx_add_vid = hns3_vlan_rx_add_vid, .ndo_vlan_rx_kill_vid = hns3_vlan_rx_kill_vid, diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c index 929f538d28bc..40bfc52f1928 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c @@ -1428,8 +1428,8 @@ int fm10k_setup_tc(struct net_device *dev, u8 tc) return err; } -static int __fm10k_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int __fm10k_setup_offload(struct net_device *dev, + enum tc_setup_type type, void *type_data) { struct tc_mqprio_qopt *mqprio = type_data; @@ -1639,7 +1639,7 @@ static const struct net_device_ops fm10k_netdev_ops = { .ndo_vlan_rx_kill_vid = fm10k_vlan_rx_kill_vid, .ndo_set_rx_mode = fm10k_set_rx_mode, .ndo_get_stats64 = fm10k_get_stats64, - .ndo_setup_tc = __fm10k_setup_tc, + .ndo_setup_offload = __fm10k_setup_offload, .ndo_set_vf_mac = fm10k_ndo_set_vf_mac, .ndo_set_vf_vlan = fm10k_ndo_set_vf_vlan, .ndo_set_vf_rate = fm10k_ndo_set_vf_bw, diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 51762428b40e..f409ca5a9c9a 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -7563,8 +7563,8 @@ static int i40e_setup_tc_block(struct net_device *dev, } } -static int __i40e_setup_tc(struct net_device *netdev, enum tc_setup_type type, - void *type_data) +static int __i40e_setup_offload(struct net_device *netdev, + enum tc_setup_type type, void *type_data) { switch (type) { case TC_SETUP_QDISC_MQPRIO: @@ -11864,7 +11864,7 @@ static const struct net_device_ops i40e_netdev_ops = { #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = i40e_netpoll, #endif - .ndo_setup_tc = __i40e_setup_tc, + .ndo_setup_offload = __i40e_setup_offload, .ndo_set_features = i40e_set_features, .ndo_set_vf_mac = i40e_ndo_set_vf_mac, .ndo_set_vf_vlan = i40e_ndo_set_vf_port_vlan, diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c index 5906c1c1d19d..9c1111410f2b 100644 --- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c +++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c @@ -2942,13 +2942,13 @@ static int i40evf_setup_tc_block(struct net_device *dev, * @type: type of offload * @type_date: tc offload data * - * This function is the callback to ndo_setup_tc in the + * This function is the callback to ndo_setup_offload in the * netdev_ops. * * Returns 0 on success **/ -static int i40evf_setup_tc(struct net_device *netdev, enum tc_setup_type type, - void *type_data) +static int i40evf_setup_offload(struct net_device *netdev, + enum tc_setup_type type, void *type_data) { switch (type) { case TC_SETUP_QDISC_MQPRIO: @@ -3232,7 +3232,7 @@ static const struct net_device_ops i40evf_netdev_ops = { #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = i40evf_netpoll, #endif - .ndo_setup_tc = i40evf_setup_tc, + .ndo_setup_offload = i40evf_setup_offload, }; /** diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index e3a0c02721c9..69b1633b6351 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -2845,8 +2845,8 @@ static int igb_offload_txtime(struct igb_adapter *adapter, return 0; } -static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int igb_setup_offload(struct net_device *dev, enum tc_setup_type type, + void *type_data) { struct igb_adapter *adapter = netdev_priv(dev); @@ -2889,7 +2889,7 @@ static const struct net_device_ops igb_netdev_ops = { .ndo_set_features = igb_set_features, .ndo_fdb_add = igb_ndo_fdb_add, .ndo_features_check = igb_features_check, - .ndo_setup_tc = igb_setup_tc, + .ndo_setup_offload = igb_setup_offload, }; /** diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 5a6600f7b382..872b2a4f3d9a 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -9360,8 +9360,8 @@ static int ixgbe_setup_tc_mqprio(struct net_device *dev, return ixgbe_setup_tc(dev, mqprio->num_tc); } -static int __ixgbe_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int __ixgbe_setup_offload(struct net_device *dev, + enum tc_setup_type type, void *type_data) { switch (type) { case TC_SETUP_BLOCK: @@ -10068,7 +10068,7 @@ static const struct net_device_ops ixgbe_netdev_ops = { .ndo_set_vf_trust = ixgbe_ndo_set_vf_trust, .ndo_get_vf_config = ixgbe_ndo_get_vf_config, .ndo_get_stats64 = ixgbe_get_stats64, - .ndo_setup_tc = __ixgbe_setup_tc, + .ndo_setup_offload = __ixgbe_setup_offload, #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = ixgbe_netpoll, #endif diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c index 6785661d1a72..4a01b58a07f4 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c @@ -130,8 +130,9 @@ int mlx4_en_alloc_tx_queue_per_tc(struct net_device *dev, u8 tc) return err; } -static int __mlx4_en_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int __mlx4_en_setup_offload(struct net_device *dev, + enum tc_setup_type type, + void *type_data) { struct tc_mqprio_qopt *mqprio = type_data; @@ -2951,7 +2952,7 @@ static const struct net_device_ops mlx4_netdev_ops = { #endif .ndo_set_features = mlx4_en_set_features, .ndo_fix_features = mlx4_en_fix_features, - .ndo_setup_tc = __mlx4_en_setup_tc, + .ndo_setup_offload = __mlx4_en_setup_offload, #ifdef CONFIG_RFS_ACCEL .ndo_rx_flow_steer = mlx4_en_filter_rfs, #endif @@ -2988,7 +2989,7 @@ static const struct net_device_ops mlx4_netdev_ops_master = { #endif .ndo_set_features = mlx4_en_set_features, .ndo_fix_features = mlx4_en_fix_features, - .ndo_setup_tc = __mlx4_en_setup_tc, + .ndo_setup_offload = __mlx4_en_setup_offload, #ifdef CONFIG_RFS_ACCEL .ndo_rx_flow_steer = mlx4_en_filter_rfs, #endif diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 712b9766485f..469359cbef27 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -3383,8 +3383,8 @@ static int mlx5e_setup_tc_block(struct net_device *dev, } #endif -static int mlx5e_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int mlx5e_setup_offload(struct net_device *dev, enum tc_setup_type type, + void *type_data) { switch (type) { #ifdef CONFIG_MLX5_ESWITCH @@ -4222,7 +4222,7 @@ static const struct net_device_ops mlx5e_netdev_ops = { .ndo_open = mlx5e_open, .ndo_stop = mlx5e_close, .ndo_start_xmit = mlx5e_xmit, - .ndo_setup_tc = mlx5e_setup_tc, + .ndo_setup_offload = mlx5e_setup_offload, .ndo_select_queue = mlx5e_select_queue, .ndo_get_stats64 = mlx5e_get_stats, .ndo_set_rx_mode = mlx5e_set_rx_mode, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c index 8e3c5b4b90ab..eddb20fd4dcc 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c @@ -806,8 +806,8 @@ static int mlx5e_rep_setup_tc_block(struct net_device *dev, } } -static int mlx5e_rep_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int mlx5e_rep_setup_offload(struct net_device *dev, + enum tc_setup_type type, void *type_data) { switch (type) { case TC_SETUP_BLOCK: @@ -917,7 +917,7 @@ static const struct net_device_ops mlx5e_netdev_ops_rep = { .ndo_stop = mlx5e_rep_close, .ndo_start_xmit = mlx5e_xmit, .ndo_get_phys_port_name = mlx5e_rep_get_phys_port_name, - .ndo_setup_tc = mlx5e_rep_setup_tc, + .ndo_setup_offload = mlx5e_rep_setup_offload, .ndo_get_stats64 = mlx5e_rep_get_stats, .ndo_has_offload_stats = mlx5e_has_offload_stats, .ndo_get_offload_stats = mlx5e_get_offload_stats, diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c index 6ec0f91a93cc..910fefbec88d 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c @@ -1631,8 +1631,8 @@ static int mlxsw_sp_setup_tc_block(struct mlxsw_sp_port *mlxsw_sp_port, } } -static int mlxsw_sp_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int mlxsw_sp_setup_offload(struct net_device *dev, + enum tc_setup_type type, void *type_data) { struct mlxsw_sp_port *mlxsw_sp_port = netdev_priv(dev); @@ -1708,7 +1708,7 @@ static const struct net_device_ops mlxsw_sp_port_netdev_ops = { .ndo_open = mlxsw_sp_port_open, .ndo_stop = mlxsw_sp_port_stop, .ndo_start_xmit = mlxsw_sp_port_xmit, - .ndo_setup_tc = mlxsw_sp_setup_tc, + .ndo_setup_offload = mlxsw_sp_setup_offload, .ndo_set_rx_mode = mlxsw_sp_set_rx_mode, .ndo_set_mac_address = mlxsw_sp_port_set_mac_address, .ndo_change_mtu = mlxsw_sp_port_change_mtu, diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c index a712e83c3f0f..56f7b468bc8c 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c @@ -3494,7 +3494,7 @@ const struct net_device_ops nfp_net_netdev_ops = { .ndo_set_vf_spoofchk = nfp_app_set_vf_spoofchk, .ndo_get_vf_config = nfp_app_get_vf_config, .ndo_set_vf_link_state = nfp_app_set_vf_link_state, - .ndo_setup_tc = nfp_port_setup_tc, + .ndo_setup_offload = nfp_port_setup_offload, .ndo_tx_timeout = nfp_net_tx_timeout, .ndo_set_rx_mode = nfp_net_set_rx_mode, .ndo_change_mtu = nfp_net_change_mtu, diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c index d7b712f6362f..a98d3762caa2 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c @@ -270,7 +270,7 @@ const struct net_device_ops nfp_repr_netdev_ops = { .ndo_has_offload_stats = nfp_repr_has_offload_stats, .ndo_get_offload_stats = nfp_repr_get_offload_stats, .ndo_get_phys_port_name = nfp_port_get_phys_port_name, - .ndo_setup_tc = nfp_port_setup_tc, + .ndo_setup_offload = nfp_port_setup_offload, .ndo_set_vf_mac = nfp_app_set_vf_mac, .ndo_set_vf_vlan = nfp_app_set_vf_vlan, .ndo_set_vf_spoofchk = nfp_app_set_vf_spoofchk, diff --git a/drivers/net/ethernet/netronome/nfp/nfp_port.c b/drivers/net/ethernet/netronome/nfp/nfp_port.c index 9c1298114c70..fb945adada08 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_port.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_port.c @@ -89,8 +89,8 @@ const struct switchdev_ops nfp_port_switchdev_ops = { .switchdev_port_attr_get = nfp_port_attr_get, }; -int nfp_port_setup_tc(struct net_device *netdev, enum tc_setup_type type, - void *type_data) +int nfp_port_setup_offload(struct net_device *netdev, enum tc_setup_type type, + void *type_data) { struct nfp_port *port; diff --git a/drivers/net/ethernet/netronome/nfp/nfp_port.h b/drivers/net/ethernet/netronome/nfp/nfp_port.h index 51f10ae2d53e..044fbb6f9219 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_port.h +++ b/drivers/net/ethernet/netronome/nfp/nfp_port.h @@ -124,8 +124,8 @@ extern const struct switchdev_ops nfp_port_switchdev_ops; __printf(2, 3) u8 *nfp_pr_et(u8 *data, const char *fmt, ...); -int nfp_port_setup_tc(struct net_device *netdev, enum tc_setup_type type, - void *type_data); +int nfp_port_setup_offload(struct net_device *netdev, enum tc_setup_type type, + void *type_data); static inline bool nfp_port_is_vnic(const struct nfp_port *port) { diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c index b24c2e21db8e..d0cbded8360b 100644 --- a/drivers/net/ethernet/sfc/efx.c +++ b/drivers/net/ethernet/sfc/efx.c @@ -2518,7 +2518,7 @@ static const struct net_device_ops efx_netdev_ops = { #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = efx_netpoll, #endif - .ndo_setup_tc = efx_setup_tc, + .ndo_setup_offload = efx_setup_offload, #ifdef CONFIG_RFS_ACCEL .ndo_rx_flow_steer = efx_filter_rfs, #endif diff --git a/drivers/net/ethernet/sfc/efx.h b/drivers/net/ethernet/sfc/efx.h index 3f759ebdcf10..383fb4c15dea 100644 --- a/drivers/net/ethernet/sfc/efx.h +++ b/drivers/net/ethernet/sfc/efx.h @@ -27,8 +27,8 @@ netdev_tx_t efx_hard_start_xmit(struct sk_buff *skb, struct net_device *net_dev); netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb); void efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index); -int efx_setup_tc(struct net_device *net_dev, enum tc_setup_type type, - void *type_data); +int efx_setup_offload(struct net_device *net_dev, enum tc_setup_type type, + void *type_data); unsigned int efx_tx_max_skb_descs(struct efx_nic *efx); extern unsigned int efx_piobuf_size; extern bool efx_separate_tx_channels; diff --git a/drivers/net/ethernet/sfc/falcon/efx.c b/drivers/net/ethernet/sfc/falcon/efx.c index dd5530a4f8c8..8c8b012945a8 100644 --- a/drivers/net/ethernet/sfc/falcon/efx.c +++ b/drivers/net/ethernet/sfc/falcon/efx.c @@ -2253,7 +2253,7 @@ static const struct net_device_ops ef4_netdev_ops = { #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = ef4_netpoll, #endif - .ndo_setup_tc = ef4_setup_tc, + .ndo_setup_offload = ef4_setup_offload, #ifdef CONFIG_RFS_ACCEL .ndo_rx_flow_steer = ef4_filter_rfs, #endif diff --git a/drivers/net/ethernet/sfc/falcon/efx.h b/drivers/net/ethernet/sfc/falcon/efx.h index a4e4d8ea4078..67ff3891bc42 100644 --- a/drivers/net/ethernet/sfc/falcon/efx.h +++ b/drivers/net/ethernet/sfc/falcon/efx.h @@ -32,8 +32,8 @@ netdev_tx_t ef4_hard_start_xmit(struct sk_buff *skb, struct net_device *net_dev); netdev_tx_t ef4_enqueue_skb(struct ef4_tx_queue *tx_queue, struct sk_buff *skb); void ef4_xmit_done(struct ef4_tx_queue *tx_queue, unsigned int index); -int ef4_setup_tc(struct net_device *net_dev, enum tc_setup_type type, - void *type_data); +int ef4_setup_offload(struct net_device *net_dev, enum tc_setup_type type, + void *type_data); unsigned int ef4_tx_max_skb_descs(struct ef4_nic *efx); extern bool ef4_separate_tx_channels; diff --git a/drivers/net/ethernet/sfc/tx.c b/drivers/net/ethernet/sfc/tx.c index c3ad564ac4c0..53c7801decbc 100644 --- a/drivers/net/ethernet/sfc/tx.c +++ b/drivers/net/ethernet/sfc/tx.c @@ -687,8 +687,8 @@ void efx_init_tx_queue_core_txq(struct efx_tx_queue *tx_queue) efx->n_tx_channels : 0)); } -int efx_setup_tc(struct net_device *net_dev, enum tc_setup_type type, - void *type_data) +int efx_setup_offload(struct net_device *net_dev, enum tc_setup_type type, + void *type_data) { struct efx_nic *efx = netdev_priv(net_dev); struct tc_mqprio_qopt *mqprio = type_data; diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index d9e60cfd8a85..a274d0c6b375 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -3787,8 +3787,8 @@ static int stmmac_setup_tc_block(struct stmmac_priv *priv, } } -static int stmmac_setup_tc(struct net_device *ndev, enum tc_setup_type type, - void *type_data) +static int stmmac_setup_offload(struct net_device *ndev, + enum tc_setup_type type, void *type_data) { struct stmmac_priv *priv = netdev_priv(ndev); @@ -4040,7 +4040,7 @@ static const struct net_device_ops stmmac_netdev_ops = { .ndo_set_rx_mode = stmmac_set_rx_mode, .ndo_tx_timeout = stmmac_tx_timeout, .ndo_do_ioctl = stmmac_ioctl, - .ndo_setup_tc = stmmac_setup_tc, + .ndo_setup_offload = stmmac_setup_offload, #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = stmmac_poll_controller, #endif diff --git a/drivers/net/ethernet/ti/netcp_core.c b/drivers/net/ethernet/ti/netcp_core.c index a1d335a3c5e4..70d469eabc10 100644 --- a/drivers/net/ethernet/ti/netcp_core.c +++ b/drivers/net/ethernet/ti/netcp_core.c @@ -1889,8 +1889,8 @@ static int netcp_rx_kill_vid(struct net_device *ndev, __be16 proto, u16 vid) return err; } -static int netcp_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int netcp_setup_offload(struct net_device *dev, enum tc_setup_type type, + void *type_data) { struct tc_mqprio_qopt *mqprio = type_data; u8 num_tc; @@ -1966,7 +1966,7 @@ static const struct net_device_ops netcp_netdev_ops = { .ndo_vlan_rx_kill_vid = netcp_rx_kill_vid, .ndo_tx_timeout = netcp_ndo_tx_timeout, .ndo_select_queue = dev_pick_tx_zero, - .ndo_setup_tc = netcp_setup_tc, + .ndo_setup_offload = netcp_setup_offload, }; static int netcp_create_interface(struct netcp_device *netcp_device, diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c index a7b179f0d954..9b6a5d2f335f 100644 --- a/drivers/net/netdevsim/netdev.c +++ b/drivers/net/netdevsim/netdev.c @@ -393,7 +393,8 @@ static int nsim_set_vf_link_state(struct net_device *dev, int vf, int state) } static int -nsim_setup_tc(struct net_device *dev, enum tc_setup_type type, void *type_data) +nsim_setup_offload(struct net_device *dev, enum tc_setup_type type, + void *type_data) { switch (type) { case TC_SETUP_BLOCK: @@ -431,7 +432,7 @@ static const struct net_device_ops nsim_netdev_ops = { .ndo_get_vf_config = nsim_get_vf_config, .ndo_set_vf_link_state = nsim_set_vf_link_state, .ndo_set_vf_rss_query_en = nsim_set_vf_rss_query_en, - .ndo_setup_tc = nsim_setup_tc, + .ndo_setup_offload = nsim_setup_offload, .ndo_set_features = nsim_set_features, .ndo_bpf = nsim_bpf, }; diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 3514d67112b3..0f50bf95b7cd 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -1047,12 +1047,12 @@ struct dev_ifalias { * with PF and querying it may introduce a theoretical security risk. * int (*ndo_set_vf_rss_query_en)(struct net_device *dev, int vf, bool setting); * int (*ndo_get_vf_port)(struct net_device *dev, int vf, struct sk_buff *skb); - * int (*ndo_setup_tc)(struct net_device *dev, enum tc_setup_type type, - * void *type_data); - * Called to setup any 'tc' scheduler, classifier or action on @dev. - * This is always called from the stack with the rtnl lock held and netif - * tx queues stopped. This allows the netdevice to perform queue - * management safely. + * int (*ndo_setup_offload)(struct net_device *dev, enum tc_setup_type type, + void *type_data); + * Called to setup any offload, such as 'tc' scheduler, classifier or + * action on @dev. This is always called from the stack with the rtnl lock + * held and netif tx queues stopped. This allows the netdevice to perform + * queue management safely. * * Fiber Channel over Ethernet (FCoE) offload functions. * int (*ndo_fcoe_enable)(struct net_device *dev); @@ -1297,9 +1297,9 @@ struct net_device_ops { int (*ndo_set_vf_rss_query_en)( struct net_device *dev, int vf, bool setting); - int (*ndo_setup_tc)(struct net_device *dev, - enum tc_setup_type type, - void *type_data); + int (*ndo_setup_offload)(struct net_device *dev, + enum tc_setup_type type, + void *type_data); #if IS_ENABLED(CONFIG_FCOE) int (*ndo_fcoe_enable)(struct net_device *dev); int (*ndo_fcoe_disable)(struct net_device *dev); diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 71536c435132..a8f4013edc2a 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -909,8 +909,9 @@ static int dsa_slave_setup_tc_block(struct net_device *dev, } } -static int dsa_slave_setup_tc(struct net_device *dev, enum tc_setup_type type, - void *type_data) +static int dsa_slave_setup_offload(struct net_device *dev, + enum tc_setup_type type, + void *type_data) { switch (type) { case TC_SETUP_BLOCK: @@ -1045,7 +1046,7 @@ static const struct net_device_ops dsa_slave_netdev_ops = { .ndo_poll_controller = dsa_slave_poll_controller, #endif .ndo_get_phys_port_name = dsa_slave_get_phys_port_name, - .ndo_setup_tc = dsa_slave_setup_tc, + .ndo_setup_offload = dsa_slave_setup_offload, .ndo_get_stats64 = dsa_slave_get_stats64, }; diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index c51b1b12450d..d5add1358b66 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c @@ -286,7 +286,7 @@ static int tcf_block_offload_cmd(struct tcf_block *block, bo.binder_type = ei->binder_type; bo.block = block; bo.extack = extack; - return dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_BLOCK, &bo); + return dev->netdev_ops->ndo_setup_offload(dev, TC_SETUP_BLOCK, &bo); } static int tcf_block_offload_bind(struct tcf_block *block, struct Qdisc *q, @@ -296,7 +296,7 @@ static int tcf_block_offload_bind(struct tcf_block *block, struct Qdisc *q, struct net_device *dev = q->dev_queue->dev; int err; - if (!dev->netdev_ops->ndo_setup_tc) + if (!dev->netdev_ops->ndo_setup_offload) goto no_offload_dev_inc; /* If tc offload feature is disabled and the block we try to bind @@ -325,7 +325,7 @@ static void tcf_block_offload_unbind(struct tcf_block *block, struct Qdisc *q, struct net_device *dev = q->dev_queue->dev; int err; - if (!dev->netdev_ops->ndo_setup_tc) + if (!dev->netdev_ops->ndo_setup_offload) goto no_offload_dev_dec; err = tcf_block_offload_cmd(block, dev, ei, TC_BLOCK_UNBIND, NULL); if (err == -EOPNOTSUPP) diff --git a/net/sched/sch_cbs.c b/net/sched/sch_cbs.c index cdd96b9a27bc..d7e4169f9a1c 100644 --- a/net/sched/sch_cbs.c +++ b/net/sched/sch_cbs.c @@ -206,13 +206,13 @@ static void cbs_disable_offload(struct net_device *dev, q->dequeue = cbs_dequeue_soft; ops = dev->netdev_ops; - if (!ops->ndo_setup_tc) + if (!ops->ndo_setup_offload) return; cbs.queue = q->queue; cbs.enable = 0; - err = ops->ndo_setup_tc(dev, TC_SETUP_QDISC_CBS, &cbs); + err = ops->ndo_setup_offload(dev, TC_SETUP_QDISC_CBS, &cbs); if (err < 0) pr_warn("Couldn't disable CBS offload for queue %d\n", cbs.queue); @@ -226,7 +226,7 @@ static int cbs_enable_offload(struct net_device *dev, struct cbs_sched_data *q, struct tc_cbs_qopt_offload cbs = { }; int err; - if (!ops->ndo_setup_tc) { + if (!ops->ndo_setup_offload) { NL_SET_ERR_MSG(extack, "Specified device does not support cbs offload"); return -EOPNOTSUPP; } @@ -239,7 +239,7 @@ static int cbs_enable_offload(struct net_device *dev, struct cbs_sched_data *q, cbs.idleslope = opt->idleslope; cbs.sendslope = opt->sendslope; - err = ops->ndo_setup_tc(dev, TC_SETUP_QDISC_CBS, &cbs); + err = ops->ndo_setup_offload(dev, TC_SETUP_QDISC_CBS, &cbs); if (err < 0) { NL_SET_ERR_MSG(extack, "Specified device failed to setup cbs hardware offload"); return err; diff --git a/net/sched/sch_etf.c b/net/sched/sch_etf.c index 1538d6fa8165..97061e26d2b5 100644 --- a/net/sched/sch_etf.c +++ b/net/sched/sch_etf.c @@ -272,13 +272,13 @@ static void etf_disable_offload(struct net_device *dev, return; ops = dev->netdev_ops; - if (!ops->ndo_setup_tc) + if (!ops->ndo_setup_offload) return; etf.queue = q->queue; etf.enable = 0; - err = ops->ndo_setup_tc(dev, TC_SETUP_QDISC_ETF, &etf); + err = ops->ndo_setup_offload(dev, TC_SETUP_QDISC_ETF, &etf); if (err < 0) pr_warn("Couldn't disable ETF offload for queue %d\n", etf.queue); @@ -294,7 +294,7 @@ static int etf_enable_offload(struct net_device *dev, struct etf_sched_data *q, if (q->offload) return 0; - if (!ops->ndo_setup_tc) { + if (!ops->ndo_setup_offload) { NL_SET_ERR_MSG(extack, "Specified device does not support ETF offload"); return -EOPNOTSUPP; } @@ -302,7 +302,7 @@ static int etf_enable_offload(struct net_device *dev, struct etf_sched_data *q, etf.queue = q->queue; etf.enable = 1; - err = ops->ndo_setup_tc(dev, TC_SETUP_QDISC_ETF, &etf); + err = ops->ndo_setup_offload(dev, TC_SETUP_QDISC_ETF, &etf); if (err < 0) { NL_SET_ERR_MSG(extack, "Specified device failed to setup ETF hardware offload"); return err; diff --git a/net/sched/sch_mq.c b/net/sched/sch_mq.c index d6b8ae4ed7a3..575a6b168dbc 100644 --- a/net/sched/sch_mq.c +++ b/net/sched/sch_mq.c @@ -32,10 +32,10 @@ static int mq_offload(struct Qdisc *sch, enum tc_mq_command cmd) .handle = sch->handle, }; - if (!tc_can_offload(dev) || !dev->netdev_ops->ndo_setup_tc) + if (!tc_can_offload(dev) || !dev->netdev_ops->ndo_setup_offload) return -EOPNOTSUPP; - return dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_QDISC_MQ, &opt); + return dev->netdev_ops->ndo_setup_offload(dev, TC_SETUP_QDISC_MQ, &opt); } static void mq_offload_stats(struct Qdisc *sch) @@ -50,8 +50,8 @@ static void mq_offload_stats(struct Qdisc *sch) }, }; - if (tc_can_offload(dev) && dev->netdev_ops->ndo_setup_tc) - dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_QDISC_MQ, &opt); + if (tc_can_offload(dev) && dev->netdev_ops->ndo_setup_offload) + dev->netdev_ops->ndo_setup_offload(dev, TC_SETUP_QDISC_MQ, &opt); } static void mq_destroy(struct Qdisc *sch) diff --git a/net/sched/sch_mqprio.c b/net/sched/sch_mqprio.c index 0e9d761cdd80..153d137aa2cc 100644 --- a/net/sched/sch_mqprio.c +++ b/net/sched/sch_mqprio.c @@ -44,15 +44,15 @@ static void mqprio_destroy(struct Qdisc *sch) kfree(priv->qdiscs); } - if (priv->hw_offload && dev->netdev_ops->ndo_setup_tc) { + if (priv->hw_offload && dev->netdev_ops->ndo_setup_offload) { struct tc_mqprio_qopt_offload mqprio = { { 0 } }; switch (priv->mode) { case TC_MQPRIO_MODE_DCB: case TC_MQPRIO_MODE_CHANNEL: - dev->netdev_ops->ndo_setup_tc(dev, - TC_SETUP_QDISC_MQPRIO, - &mqprio); + dev->netdev_ops->ndo_setup_offload(dev, + TC_SETUP_QDISC_MQPRIO, + &mqprio); break; default: return; @@ -85,11 +85,11 @@ static int mqprio_parse_opt(struct net_device *dev, struct tc_mqprio_qopt *qopt) /* If hardware offload is requested we will leave it to the device * to either populate the queue counts itself or to validate the - * provided queue counts. If ndo_setup_tc is not present then + * provided queue counts. If ndo_setup_offload is not present then * hardware doesn't support offload and we should return an error. */ if (qopt->hw) - return dev->netdev_ops->ndo_setup_tc ? 0 : -EINVAL; + return dev->netdev_ops->ndo_setup_offload ? 0 : -EINVAL; for (i = 0; i < qopt->num_tc; i++) { unsigned int last = qopt->offset[i] + qopt->count[i]; @@ -239,7 +239,7 @@ static int mqprio_init(struct Qdisc *sch, struct nlattr *opt, } /* If the mqprio options indicate that hardware should own - * the queue mapping then run ndo_setup_tc otherwise use the + * the queue mapping then run ndo_setup_offload otherwise use the * supplied and verified mapping */ if (qopt->hw) { @@ -266,7 +266,7 @@ static int mqprio_init(struct Qdisc *sch, struct nlattr *opt, default: return -EINVAL; } - err = dev->netdev_ops->ndo_setup_tc(dev, + err = dev->netdev_ops->ndo_setup_offload(dev, TC_SETUP_QDISC_MQPRIO, &mqprio); if (err) diff --git a/net/sched/sch_prio.c b/net/sched/sch_prio.c index 222e53d3d27a..ae9bf5fe320a 100644 --- a/net/sched/sch_prio.c +++ b/net/sched/sch_prio.c @@ -150,7 +150,7 @@ static int prio_offload(struct Qdisc *sch, struct tc_prio_qopt *qopt) .parent = sch->parent, }; - if (!tc_can_offload(dev) || !dev->netdev_ops->ndo_setup_tc) + if (!tc_can_offload(dev) || !dev->netdev_ops->ndo_setup_offload) return -EOPNOTSUPP; if (qopt) { @@ -163,7 +163,8 @@ static int prio_offload(struct Qdisc *sch, struct tc_prio_qopt *qopt) opt.command = TC_PRIO_DESTROY; } - return dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_QDISC_PRIO, &opt); + return dev->netdev_ops->ndo_setup_offload(dev, TC_SETUP_QDISC_PRIO, + &opt); } static void @@ -266,11 +267,11 @@ static int prio_dump_offload(struct Qdisc *sch) int err; sch->flags &= ~TCQ_F_OFFLOADED; - if (!tc_can_offload(dev) || !dev->netdev_ops->ndo_setup_tc) + if (!tc_can_offload(dev) || !dev->netdev_ops->ndo_setup_offload) return 0; - err = dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_QDISC_PRIO, - &hw_stats); + err = dev->netdev_ops->ndo_setup_offload(dev, TC_SETUP_QDISC_PRIO, + &hw_stats); if (err == -EOPNOTSUPP) return 0; @@ -328,8 +329,8 @@ static int prio_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, graft_offload.graft_params.child_handle = new->handle; graft_offload.command = TC_PRIO_GRAFT; - err = dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_QDISC_PRIO, - &graft_offload); + err = dev->netdev_ops->ndo_setup_offload(dev, TC_SETUP_QDISC_PRIO, + &graft_offload); /* Don't report error if the graft is part of destroy operation. */ if (err && new != &noop_qdisc) { diff --git a/net/sched/sch_red.c b/net/sched/sch_red.c index 56c181c3feeb..63a4ee50cf05 100644 --- a/net/sched/sch_red.c +++ b/net/sched/sch_red.c @@ -158,7 +158,7 @@ static int red_offload(struct Qdisc *sch, bool enable) .parent = sch->parent, }; - if (!tc_can_offload(dev) || !dev->netdev_ops->ndo_setup_tc) + if (!tc_can_offload(dev) || !dev->netdev_ops->ndo_setup_offload) return -EOPNOTSUPP; if (enable) { @@ -172,7 +172,8 @@ static int red_offload(struct Qdisc *sch, bool enable) opt.command = TC_RED_DESTROY; } - return dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_QDISC_RED, &opt); + return dev->netdev_ops->ndo_setup_offload(dev, TC_SETUP_QDISC_RED, + &opt); } static void red_destroy(struct Qdisc *sch) @@ -295,11 +296,11 @@ static int red_dump_offload_stats(struct Qdisc *sch, struct tc_red_qopt *opt) sch->flags &= ~TCQ_F_OFFLOADED; - if (!tc_can_offload(dev) || !dev->netdev_ops->ndo_setup_tc) + if (!tc_can_offload(dev) || !dev->netdev_ops->ndo_setup_offload) return 0; - err = dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_QDISC_RED, - &hw_stats); + err = dev->netdev_ops->ndo_setup_offload(dev, TC_SETUP_QDISC_RED, + &hw_stats); if (err == -EOPNOTSUPP) return 0; @@ -356,8 +357,8 @@ static int red_dump_stats(struct Qdisc *sch, struct gnet_dump *d) .xstats = &q->stats, }, }; - dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_QDISC_RED, - &hw_stats_request); + dev->netdev_ops->ndo_setup_offload(dev, TC_SETUP_QDISC_RED, + &hw_stats_request); } st.early = q->stats.prob_drop + q->stats.forced_drop; st.pdrop = q->stats.pdrop; -- 2.11.0