From: Dan Carpenter <dan.carpenter@oracle.com>
To: kernel-janitors@vger.kernel.org
Subject: Re: [bug report] net/sched: cls_flower: Set the filter Hardware device for all use-cases
Date: Wed, 18 Jan 2017 14:50:00 +0000 [thread overview]
Message-ID: <20170118145000.GA4398@mwanda> (raw)
In-Reply-To: <20170117225703.GA21380@mwanda>
On Wed, Jan 18, 2017 at 04:01:05PM +0200, Hadar Hen Zion wrote:
>
>
> On 1/18/2017 12:57 AM, Dan Carpenter wrote:
> >Hello Hadar Hen Zion,
> >
> >The patch a6e169312971: "net/sched: cls_flower: Set the filter
> >Hardware device for all use-cases" from Dec 4, 2016, leads to the
> >following static checker warning:
> >
> > net/sched/cls_flower.c:272 fl_hw_replace_filter()
> > error: we previously assumed 'dev' could be null (see line 256)
> >
> >net/sched/cls_flower.c
> > 240 static int fl_hw_replace_filter(struct tcf_proto *tp,
> > 241 struct flow_dissector *dissector,
> > 242 struct fl_flow_key *mask,
> > 243 struct cls_fl_filter *f)
> > 244 {
> > 245 struct net_device *dev = tp->q->dev_queue->dev;
> > 246 struct tc_cls_flower_offload offload = {0};
> > 247 struct tc_to_netdev *tc = &f->tc;
> > 248 int err;
> > 249
> > 250 if (!tc_can_offload(dev, tp)) {
> > 251 if (tcf_exts_get_dev(dev, &f->exts, &f->hw_dev) ||
> > 252 (f->hw_dev && !tc_can_offload(f->hw_dev, tp))) {
> > ^^^^^^^^^
> >Let's say this is NULL.
> >
> > 253 f->hw_dev = dev;
> > 254 return tc_skip_sw(f->flags) ? -EINVAL : 0;
> > 255 }
> > 256 dev = f->hw_dev;
> >
> >That means "dev" is NULL.
>
> After re-checking the code, it's a not a real bug.
> If 'f->hw_dev' is NULL we would never get here.
> tcf_exts_get_dev() function above returns an error in case
> 'f->hw_dev' is NULL, so we'll go into the 'if' and return from the
> function.
>
> The above 'f->hw_dev' check you marked above is redundant, that's
> why we got the static checker warning.
> I'll send a patch that remove it.
Yeah. Removing the check is the right thing.
Oddly enough, this Smatch test is supposed to ignore NULL checks when we
can tell that they non-NULL. The only reason this warning was printed
was because I had a bug where it said that f->exts.nr_actions was always
zero here. That's fixed today apparently so it no longer generates the
warning.
Two steps forward, one step back.
regards,
dan carpenter
prev parent reply other threads:[~2017-01-18 14:50 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-17 22:57 [bug report] net/sched: cls_flower: Set the filter Hardware device for all use-cases Dan Carpenter
2017-01-18 8:35 ` Hadar Hen Zion
2017-01-18 14:01 ` Hadar Hen Zion
2017-01-18 14:50 ` Dan Carpenter [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=20170118145000.GA4398@mwanda \
--to=dan.carpenter@oracle.com \
--cc=kernel-janitors@vger.kernel.org \
/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.