Message ID | 20240104141113.1995416-1-pctammela@mojatatu.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net/sched: simplify tc_action_load_ops parameters | expand |
Thu, Jan 04, 2024 at 03:11:13PM CET, pctammela@mojatatu.com wrote: >Instead of using two bools derived from a flags passed as arguments to >the parent function of tc_action_load_ops, just pass the flags itself >to tc_action_load_ops to simplify its parameters. > >Signed-off-by: Pedro Tammela <pctammela@mojatatu.com> >--- > include/net/act_api.h | 3 +-- > net/sched/act_api.c | 9 ++++----- > net/sched/cls_api.c | 5 ++--- > 3 files changed, 7 insertions(+), 10 deletions(-) > >diff --git a/include/net/act_api.h b/include/net/act_api.h >index 447985a45ef6..e1e5e72b901e 100644 >--- a/include/net/act_api.h >+++ b/include/net/act_api.h >@@ -208,8 +208,7 @@ int tcf_action_init(struct net *net, struct tcf_proto *tp, struct nlattr *nla, > struct nlattr *est, > struct tc_action *actions[], int init_res[], size_t *attr_size, > u32 flags, u32 fl_flags, struct netlink_ext_ack *extack); >-struct tc_action_ops *tc_action_load_ops(struct nlattr *nla, bool police, >- bool rtnl_held, >+struct tc_action_ops *tc_action_load_ops(struct nlattr *nla, u32 flags, > struct netlink_ext_ack *extack); > struct tc_action *tcf_action_init_1(struct net *net, struct tcf_proto *tp, > struct nlattr *nla, struct nlattr *est, >diff --git a/net/sched/act_api.c b/net/sched/act_api.c >index ef70d4771811..dd3b893802db 100644 >--- a/net/sched/act_api.c >+++ b/net/sched/act_api.c >@@ -1324,10 +1324,10 @@ void tcf_idr_insert_many(struct tc_action *actions[], int init_res[]) > } > } > >-struct tc_action_ops *tc_action_load_ops(struct nlattr *nla, bool police, >- bool rtnl_held, >+struct tc_action_ops *tc_action_load_ops(struct nlattr *nla, u32 flags, > struct netlink_ext_ack *extack) > { >+ bool police = flags & TCA_ACT_FLAGS_POLICE; > struct nlattr *tb[TCA_ACT_MAX + 1]; > struct tc_action_ops *a_o; > char act_name[IFNAMSIZ]; >@@ -1359,6 +1359,7 @@ struct tc_action_ops *tc_action_load_ops(struct nlattr *nla, bool police, > a_o = tc_lookup_action_n(act_name); > if (a_o == NULL) { > #ifdef CONFIG_MODULES >+ bool rtnl_held = !(flags & TCA_ACT_FLAGS_NO_RTNL); Empty line here please. Otherwise this looks fine to me. Reviewed-by: Jiri Pirko <jiri@nvidia.com> > if (rtnl_held) > rtnl_unlock(); > request_module("act_%s", act_name); >@@ -1475,9 +1476,7 @@ int tcf_action_init(struct net *net, struct tcf_proto *tp, struct nlattr *nla, > for (i = 1; i <= TCA_ACT_MAX_PRIO && tb[i]; i++) { > struct tc_action_ops *a_o; > >- a_o = tc_action_load_ops(tb[i], flags & TCA_ACT_FLAGS_POLICE, >- !(flags & TCA_ACT_FLAGS_NO_RTNL), >- extack); >+ a_o = tc_action_load_ops(tb[i], flags, extack); > if (IS_ERR(a_o)) { > err = PTR_ERR(a_o); > goto err_mod; >diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c >index 46c98367d205..8d25e6b561dd 100644 >--- a/net/sched/cls_api.c >+++ b/net/sched/cls_api.c >@@ -3297,12 +3297,11 @@ int tcf_exts_validate_ex(struct net *net, struct tcf_proto *tp, struct nlattr ** > if (exts->police && tb[exts->police]) { > struct tc_action_ops *a_o; > >- a_o = tc_action_load_ops(tb[exts->police], true, >- !(flags & TCA_ACT_FLAGS_NO_RTNL), >+ flags |= TCA_ACT_FLAGS_POLICE | TCA_ACT_FLAGS_BIND; >+ a_o = tc_action_load_ops(tb[exts->police], flags, > extack); > if (IS_ERR(a_o)) > return PTR_ERR(a_o); >- flags |= TCA_ACT_FLAGS_POLICE | TCA_ACT_FLAGS_BIND; > act = tcf_action_init_1(net, tp, tb[exts->police], > rate_tlv, a_o, init_res, flags, > extack); >-- >2.40.1 >
diff --git a/include/net/act_api.h b/include/net/act_api.h index 447985a45ef6..e1e5e72b901e 100644 --- a/include/net/act_api.h +++ b/include/net/act_api.h @@ -208,8 +208,7 @@ int tcf_action_init(struct net *net, struct tcf_proto *tp, struct nlattr *nla, struct nlattr *est, struct tc_action *actions[], int init_res[], size_t *attr_size, u32 flags, u32 fl_flags, struct netlink_ext_ack *extack); -struct tc_action_ops *tc_action_load_ops(struct nlattr *nla, bool police, - bool rtnl_held, +struct tc_action_ops *tc_action_load_ops(struct nlattr *nla, u32 flags, struct netlink_ext_ack *extack); struct tc_action *tcf_action_init_1(struct net *net, struct tcf_proto *tp, struct nlattr *nla, struct nlattr *est, diff --git a/net/sched/act_api.c b/net/sched/act_api.c index ef70d4771811..dd3b893802db 100644 --- a/net/sched/act_api.c +++ b/net/sched/act_api.c @@ -1324,10 +1324,10 @@ void tcf_idr_insert_many(struct tc_action *actions[], int init_res[]) } } -struct tc_action_ops *tc_action_load_ops(struct nlattr *nla, bool police, - bool rtnl_held, +struct tc_action_ops *tc_action_load_ops(struct nlattr *nla, u32 flags, struct netlink_ext_ack *extack) { + bool police = flags & TCA_ACT_FLAGS_POLICE; struct nlattr *tb[TCA_ACT_MAX + 1]; struct tc_action_ops *a_o; char act_name[IFNAMSIZ]; @@ -1359,6 +1359,7 @@ struct tc_action_ops *tc_action_load_ops(struct nlattr *nla, bool police, a_o = tc_lookup_action_n(act_name); if (a_o == NULL) { #ifdef CONFIG_MODULES + bool rtnl_held = !(flags & TCA_ACT_FLAGS_NO_RTNL); if (rtnl_held) rtnl_unlock(); request_module("act_%s", act_name); @@ -1475,9 +1476,7 @@ int tcf_action_init(struct net *net, struct tcf_proto *tp, struct nlattr *nla, for (i = 1; i <= TCA_ACT_MAX_PRIO && tb[i]; i++) { struct tc_action_ops *a_o; - a_o = tc_action_load_ops(tb[i], flags & TCA_ACT_FLAGS_POLICE, - !(flags & TCA_ACT_FLAGS_NO_RTNL), - extack); + a_o = tc_action_load_ops(tb[i], flags, extack); if (IS_ERR(a_o)) { err = PTR_ERR(a_o); goto err_mod; diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index 46c98367d205..8d25e6b561dd 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c @@ -3297,12 +3297,11 @@ int tcf_exts_validate_ex(struct net *net, struct tcf_proto *tp, struct nlattr ** if (exts->police && tb[exts->police]) { struct tc_action_ops *a_o; - a_o = tc_action_load_ops(tb[exts->police], true, - !(flags & TCA_ACT_FLAGS_NO_RTNL), + flags |= TCA_ACT_FLAGS_POLICE | TCA_ACT_FLAGS_BIND; + a_o = tc_action_load_ops(tb[exts->police], flags, extack); if (IS_ERR(a_o)) return PTR_ERR(a_o); - flags |= TCA_ACT_FLAGS_POLICE | TCA_ACT_FLAGS_BIND; act = tcf_action_init_1(net, tp, tb[exts->police], rate_tlv, a_o, init_res, flags, extack);
Instead of using two bools derived from a flags passed as arguments to the parent function of tc_action_load_ops, just pass the flags itself to tc_action_load_ops to simplify its parameters. Signed-off-by: Pedro Tammela <pctammela@mojatatu.com> --- include/net/act_api.h | 3 +-- net/sched/act_api.c | 9 ++++----- net/sched/cls_api.c | 5 ++--- 3 files changed, 7 insertions(+), 10 deletions(-)