Make use of tc_can_offload_cls() to report error in case
ethtool tc offload flag is not set or chain unsupported.

Signed-off-by: Jakub Kicinski <jakub.kicin...@netronome.com>
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c 
b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
index 833cd0a96fd9..1e4aac8471d5 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
@@ -1738,7 +1738,7 @@ static int mlxsw_sp_setup_tc_cls_matchall(struct 
mlxsw_sp_port *mlxsw_sp_port,
                                          struct tc_cls_matchall_offload *f,
                                          bool ingress)
 {
-       if (f->common.chain_index)
+       if (!tc_can_offload_cls(mlxsw_sp_port->dev, &f->common))
                return -EOPNOTSUPP;
 
        switch (f->command) {
@@ -1780,9 +1780,6 @@ static int mlxsw_sp_setup_tc_block_cb_matchall(enum 
tc_setup_type type,
 
        switch (type) {
        case TC_SETUP_CLSMATCHALL:
-               if (!tc_can_offload(mlxsw_sp_port->dev))
-                       return -EOPNOTSUPP;
-
                return mlxsw_sp_setup_tc_cls_matchall(mlxsw_sp_port, type_data,
                                                      ingress);
        case TC_SETUP_CLSFLOWER:
-- 
2.15.1

Reply via email to