aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/netronome
diff options
context:
space:
mode:
authorGravatar Jiri Pirko <jiri@mellanox.com> 2017-11-01 11:47:39 +0100
committerGravatar David S. Miller <davem@davemloft.net> 2017-11-02 16:10:39 +0900
commit44ae12a768b7212976a362c590075716a77e8f28 (patch)
tree02eeee68258d3f0b1c03c260852f51c4fadb2a24 /drivers/net/ethernet/netronome
parentnet: sched: remove unused tc_should_offload helper (diff)
downloadlinux-44ae12a768b7212976a362c590075716a77e8f28.tar.gz
linux-44ae12a768b7212976a362c590075716a77e8f28.tar.bz2
linux-44ae12a768b7212976a362c590075716a77e8f28.zip
net: sched: move the can_offload check from binding phase to rule insertion phase
This restores the original behaviour before the block callbacks were introduced. Allow the drivers to do binding of block always, no matter if the NETIF_F_HW_TC feature is on or off. Move the check to the block callback which is called for rule insertion. Reported-by: Alexander Duyck <alexander.duyck@gmail.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/netronome')
-rw-r--r--drivers/net/ethernet/netronome/nfp/bpf/main.c3
-rw-r--r--drivers/net/ethernet/netronome/nfp/flower/offload.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/bpf/main.c b/drivers/net/ethernet/netronome/nfp/bpf/main.c
index f15a186f6c87..04424db24b80 100644
--- a/drivers/net/ethernet/netronome/nfp/bpf/main.c
+++ b/drivers/net/ethernet/netronome/nfp/bpf/main.c
@@ -121,6 +121,9 @@ static int nfp_bpf_setup_tc_block_cb(enum tc_setup_type type,
struct tc_cls_bpf_offload *cls_bpf = type_data;
struct nfp_net *nn = cb_priv;
+ if (!tc_can_offload(nn->dp.netdev))
+ return -EOPNOTSUPP;
+
switch (type) {
case TC_SETUP_CLSBPF:
if (!nfp_net_ebpf_capable(nn) ||
diff --git a/drivers/net/ethernet/netronome/nfp/flower/offload.c b/drivers/net/ethernet/netronome/nfp/flower/offload.c
index c47753fdb55b..7c6cab176293 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/offload.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/offload.c
@@ -470,6 +470,9 @@ static int nfp_flower_setup_tc_block_cb(enum tc_setup_type type,
{
struct nfp_net *nn = cb_priv;
+ if (!tc_can_offload(nn->dp.netdev))
+ return -EOPNOTSUPP;
+
switch (type) {
case TC_SETUP_CLSFLOWER:
return nfp_flower_repr_offload(nn->app, nn->port->netdev,