net/sched: flower: Avoid overwriting error messages
authorIdo Schimmel <idosch@nvidia.com>
Thu, 7 Apr 2022 07:35:33 +0000 (10:35 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Apr 2022 12:45:43 +0000 (13:45 +0100)
The various error paths of tc_setup_offload_action() now report specific
error messages. Remove the generic messages to avoid overwriting the
more specific ones.

Before:

 # tc filter add dev dummy0 ingress pref 1 proto ip flower skip_sw dst_ip 198.51.100.1 action police rate 100Mbit burst 10000
 Error: cls_flower: Failed to setup flow action.
 We have an error talking to the kernel

After:

 # tc filter add dev dummy0 ingress pref 1 proto ip flower skip_sw dst_ip 198.51.100.1 action police rate 100Mbit burst 10000
 Error: act_police: Offload not supported when conform/exceed action is "reclassify".
 We have an error talking to the kernel

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_flower.c

index acf827b0e30a6e6511dcaba8242defc723d7897c..87e030dfc3283a0e30acdfd163aaeeaeda35d961 100644 (file)
@@ -468,8 +468,6 @@ static int fl_hw_replace_filter(struct tcf_proto *tp,
                                      cls_flower.common.extack);
        if (err) {
                kfree(cls_flower.rule);
-               NL_SET_ERR_MSG_MOD(cls_flower.common.extack,
-                                  "Failed to setup flow action");
 
                return skip_sw ? err : 0;
        }
@@ -2358,8 +2356,6 @@ static int fl_reoffload(struct tcf_proto *tp, bool add, flow_setup_cb_t *cb,
                                              cls_flower.common.extack);
                if (err) {
                        kfree(cls_flower.rule);
-                       NL_SET_ERR_MSG_MOD(cls_flower.common.extack,
-                                          "Failed to setup flow action");
                        if (tc_skip_sw(f->flags)) {
                                __fl_put(f);
                                return err;