From: Jamal Hadi Salim <jhs@mojatatu.com>
To: Dan Carpenter <dan.carpenter@linaro.org>
Cc: Jamal Hadi Salim <hadi@mojatatu.com>,
Simon Horman <simon.horman@corigine.com>,
netdev@vger.kernel.org, deb.chatterjee@intel.com,
tom@sipanda.io, p4tc-discussions@netdevconf.info,
Mahesh.Shirshyad@amd.com, Vipin.Jain@amd.com,
tomasz.osinski@intel.com, xiyou.wangcong@gmail.com,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, khalidm@nvidia.com, toke@redhat.com
Subject: Re: [p4tc-discussions] Re: [PATCH RFC v2 net-next 04/28] net/sched: act_api: add init_ops to struct tc_action_op
Date: Mon, 5 Jun 2023 11:27:48 -0400 [thread overview]
Message-ID: <CAM0EoMmgMVzaHM+_TRf5DPUOYLkO2eEb1maHieoHn4UCXfu9TA@mail.gmail.com> (raw)
In-Reply-To: <9ae2fc87-40a4-4ca8-afcd-a85392f01181@kadam.mountain>
On Mon, Jun 5, 2023 at 10:59 AM Dan Carpenter <dan.carpenter@linaro.org> wrote:
>
> On Mon, Jun 05, 2023 at 10:01:44AM -0400, Jamal Hadi Salim wrote:
> > On Mon, Jun 5, 2023 at 7:39 AM Dan Carpenter via p4tc-discussions
> > <p4tc-discussions@netdevconf.info> wrote:
> > >
> > > On Mon, Jun 05, 2023 at 11:51:14AM +0200, Simon Horman wrote:
> > > > > @@ -1494,8 +1494,13 @@ struct tc_action *tcf_action_init_1(struct net *net, struct tcf_proto *tp,
> > > > > }
> > > > > }
> > > > >
> > > > > - err = a_o->init(net, tb[TCA_ACT_OPTIONS], est, &a, tp,
> > > > > - userflags.value | flags, extack);
> > > > > + if (a_o->init)
> > > > > + err = a_o->init(net, tb[TCA_ACT_OPTIONS], est, &a, tp,
> > > > > + userflags.value | flags, extack);
> > > > > + else if (a_o->init_ops)
> > > > > + err = a_o->init_ops(net, tb[TCA_ACT_OPTIONS], est, &a,
> > > > > + tp, a_o, userflags.value | flags,
> > > > > + extack);
> > > >
> > > > By my reading the initialisation of a occurs here.
> > > > Which is now conditional.
> > > >
> > >
> > > Right. Presumably the author knows that one (and only one) of the
> > > ->init or ->init_ops pointers is set.
> >
> > Yes, this is correct and the code above checks i.e
> > - if (!act->act || !act->dump || !act->init)
> > + if (!act->act || !act->dump || (!act->init && !act->init_ops))
> > return -EINVAL;
> >
>
> Ah. Right.
>
> > > This kind of relationship between
> > > two variables is something that Smatch tries to track inside a function
> > > but outside of functions, like here, then Smatch doesn't track it.
> > > I can't really think of a scalable way to track this.
> >
> > Could you have used the statement i referred to above as part of the state?
> >
>
> If the if statement were in the same function then Smatch would be able
> to parse this but that relationship information doesn't carry across the
> function boundary. It's actually quite a bit more complicated than just
> the function boundary even... I don't know if this is even possible but
> if it were then it would be like a 5-7 year time frame to make it work...
Understood. I guess this semantically is at least a layer above, so it
owuld be complex.
cheers,
jamal
> regards,
> dan carpenter
>
>
next prev parent reply other threads:[~2023-06-05 15:28 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-17 11:02 [PATCH RFC v2 net-next 01/28] net: sched: act_api: Add dynamic actions IDR Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 02/28] net/sched: act_api: increase action kind string length Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 03/28] net/sched: act_api: increase TCA_ID_MAX Jamal Hadi Salim
2023-06-02 14:19 ` Marcelo Ricardo Leitner
2023-06-03 13:03 ` Jamal Hadi Salim
2023-06-05 17:39 ` Jakub Kicinski
2023-06-06 17:04 ` [p4tc-discussions] " Jamal Hadi Salim
2023-06-06 17:15 ` Jakub Kicinski
2023-06-06 18:52 ` Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 04/28] net/sched: act_api: add init_ops to struct tc_action_op Jamal Hadi Salim
2023-06-05 9:51 ` Simon Horman
2023-06-05 11:09 ` Dan Carpenter
2023-06-05 14:01 ` [p4tc-discussions] " Jamal Hadi Salim
2023-06-05 14:57 ` Dan Carpenter
2023-06-05 15:27 ` Jamal Hadi Salim [this message]
2023-05-17 11:02 ` [PATCH RFC v2 net-next 05/28] net/sched: act_api: introduce tc_lookup_action_byid() Jamal Hadi Salim
2023-06-02 19:36 ` Marcelo Ricardo Leitner
2023-06-03 13:10 ` Jamal Hadi Salim
2023-06-03 13:14 ` Jamal Hadi Salim
2023-06-05 12:08 ` Marcelo Ricardo Leitner
2023-06-05 14:55 ` [p4tc-discussions] " Jamal Hadi Salim
2023-06-05 9:55 ` Simon Horman
2023-06-05 14:17 ` [p4tc-discussions] " Jamal Hadi Salim
2023-06-05 14:31 ` Simon Horman
2023-06-05 15:04 ` Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 06/28] net/sched: act_api: export generic tc action searcher Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 07/28] net/sched: act_api: add struct p4tc_action_ops as a parameter to lookup callback Jamal Hadi Salim
2023-06-02 19:43 ` Marcelo Ricardo Leitner
2023-06-03 13:17 ` Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 08/28] net: introduce rcu_replace_pointer_rtnl Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 09/28] p4tc: add P4 data types Jamal Hadi Salim
2023-06-02 20:30 ` Marcelo Ricardo Leitner
2023-06-03 13:54 ` Jamal Hadi Salim
2023-06-05 10:08 ` Simon Horman
2023-06-05 14:26 ` [p4tc-discussions] " Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 10/28] p4tc: add pipeline create, get, update, delete Jamal Hadi Salim
2023-06-05 10:12 ` Simon Horman
2023-06-05 14:32 ` [p4tc-discussions] " Jamal Hadi Salim
2023-06-05 14:35 ` Simon Horman
2023-06-05 15:13 ` Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 11/28] p4tc: add metadata create, update, delete, get, flush and dump Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 12/28] p4tc: add header field create, get, delete, " Jamal Hadi Salim
2023-06-05 10:24 ` Simon Horman
2023-06-05 14:48 ` [p4tc-discussions] " Jamal Hadi Salim
2023-06-05 15:14 ` Simon Horman
2023-06-05 15:34 ` Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 13/28] p4tc: add action template create, update, delete, get, " Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 14/28] p4tc: add table " Jamal Hadi Salim
2023-06-02 21:54 ` Marcelo Ricardo Leitner
2023-06-03 14:15 ` Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 15/28] p4tc: add table entry create, update, get, delete, " Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 16/28] p4tc: add register create, update, delete, get, " Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 17/28] p4tc: add dynamic action commands Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 18/28] p4tc: add P4 classifier Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 19/28] selftests: tc-testing: add JSON introspection file directory for P4TC Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 20/28] selftests: tc-testing: Don't assume ENVIR is declared in local config Jamal Hadi Salim
2023-06-02 22:08 ` Marcelo Ricardo Leitner
2023-06-03 14:17 ` Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 21/28] selftests: tc-testing: add P4TC pipeline control path tdc tests Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 22/28] selftests: tc-testing: add P4TC metadata " Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 23/28] selftests: tc-testing: add P4TC action templates " Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 24/28] selftests: tc-testing: add P4TC table control path " Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 25/28] selftests: tc-testing: add P4TC table entries " Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 26/28] selftests: tc-testing: add P4TC register " Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 27/28] p4tc: add set of P4TC table lookup kfuncs Jamal Hadi Salim
2023-05-17 11:02 ` [PATCH RFC v2 net-next 28/28] MAINTAINERS: add p4tc entry Jamal Hadi Salim
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=CAM0EoMmgMVzaHM+_TRf5DPUOYLkO2eEb1maHieoHn4UCXfu9TA@mail.gmail.com \
--to=jhs@mojatatu.com \
--cc=Mahesh.Shirshyad@amd.com \
--cc=Vipin.Jain@amd.com \
--cc=dan.carpenter@linaro.org \
--cc=davem@davemloft.net \
--cc=deb.chatterjee@intel.com \
--cc=edumazet@google.com \
--cc=hadi@mojatatu.com \
--cc=khalidm@nvidia.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=p4tc-discussions@netdevconf.info \
--cc=pabeni@redhat.com \
--cc=simon.horman@corigine.com \
--cc=toke@redhat.com \
--cc=tom@sipanda.io \
--cc=tomasz.osinski@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).