All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Pirko <jiri@resnulli.us>
To: Pedro Tammela <pctammela@mojatatu.com>
Cc: netdev@vger.kernel.org, davem@davemloft.net, edumazet@google.com,
	kuba@kernel.org, pabeni@redhat.com, jhs@mojatatu.com,
	xiyou.wangcong@gmail.com
Subject: Re: [PATCH net-next] net/sched: simplify tc_action_load_ops parameters
Date: Thu, 4 Jan 2024 15:57:49 +0100	[thread overview]
Message-ID: <ZZbHbUsTVo7oJL2P@nanopsycho> (raw)
In-Reply-To: <20240104141113.1995416-1-pctammela@mojatatu.com>

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
>

      reply	other threads:[~2024-01-04 14:57 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-04 14:11 [PATCH net-next] net/sched: simplify tc_action_load_ops parameters Pedro Tammela
2024-01-04 14:57 ` Jiri Pirko [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZZbHbUsTVo7oJL2P@nanopsycho \
    --to=jiri@resnulli.us \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=jhs@mojatatu.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=pctammela@mojatatu.com \
    --cc=xiyou.wangcong@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.