Merge branch 'net-sched-propagate-extack-to-cls-offloads-on-destroy-and-only-with...
authorDavid S. Miller <davem@davemloft.net>
Wed, 24 Jan 2018 21:01:11 +0000 (16:01 -0500)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Jan 2018 21:01:11 +0000 (16:01 -0500)
commit131f1ed317d2ca92a1b7ada4e658cc2a3a0e4ce6
tree46014315e7b1f1d4c22b47b514a905cd823ddb99
parent46410c2efa9cb5b2f40c9ce24a75d147f44aedeb
parentc846adb6be17d77395c579a61c44d2863e6f9762
Merge branch 'net-sched-propagate-extack-to-cls-offloads-on-destroy-and-only-with-skip_sw'

Jakub Kicinski says:

====================
net: sched: propagate extack to cls offloads on destroy and only with skip_sw

This series some of Jiri's comments and the fact that today drivers
may produce extack even if there is no skip_sw flag (meaning the
driver failure is not really a problem), and warning messages will
only confuse the users.

First patch propagates extack to destroy as requested by Jiri, extack
is then propagated to the driver callback for each classifier.  I chose
not to provide the extack on error paths.  As a rule of thumb it seems
best to keep the extack of the condition which caused the error.  E.g.

     err = this_will_fail(arg, extack);
     if (err) {
        undo_things(arg, NULL /* don't pass extack */);
return err;
     }

Note that NL_SET_ERR_MSG() will ignore the message if extack is NULL.
I was pondering whether we should make NL_SET_ERR_MSG() refuse to
overwrite the msg, but there seem to be cases in the tree where extack
is set like this:

     err = this_will_fail(arg, extack);
     if (err) {
        undo_things(arg, NULL /* don't pass extack */);
NL_SET_ERR_MSG(extack, "extack is set after undo call :/");
return err;
     }

I think not passing extack to undo calls is reasonable.

v2:
 - rename the temporary tc_cls_common_offload_init().
====================

Signed-off-by: David S. Miller <davem@davemloft.net>