From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>,
linux-media@vger.kernel.org,
Kieran Bingham <kieran.bingham@ideasonboard.com>
Subject: Re: [GIT PULL FOR v4.18] R-Car VSP1 TLB optimisation
Date: Mon, 28 May 2018 13:58:41 +0300 [thread overview]
Message-ID: <5458207.P65NUnc4kr@avalon> (raw)
In-Reply-To: <20180528103608.3hwqenzdbvbopuqj@mwanda>
Hi Dan,
On Monday, 28 May 2018 13:36:08 EEST Dan Carpenter wrote:
> On Mon, May 28, 2018 at 11:31:01AM +0300, Laurent Pinchart wrote:
> > And that being said, I just tried
> >
> > if (pipe->num_inputs > 2)
> > brx = &vsp1->bru->entity;
> > else if (pipe->brx && !drm_pipe->force_brx_release)
> > brx = pipe->brx;
> > else if (!vsp1->bru->entity.pipe)
> > brx = &vsp1->bru->entity;
> > else
> > brx = &vsp1->brs->entity;
> >
> > if (!brx)
> > return -EINVAL;
> >
> > and that didn't help either... Dan, would you have some light to shed on
> > this problem ?
>
> This is a problem in Smatch.
>
> We should be able to go backwards and say that "If we know 'brx' is
> non-NULL then let's mark &vsp1->brs->entity, vsp1->brs,
> &vsp1->bru->entity and vsp1->bru all as non-NULL as well". But Smatch
> doesn't go backwards like that. The information is mostly there to do
> it, but my instinct is that it's really hard to implement.
>
> The other potential problem here is that Smatch stores comparisons and
> values separately. In other words smatch_comparison.c has all the
> information about brx == &vsp1->bru->entity and smatch_extra.c has the
> information about if brx is NULL or non-NULL. They don't really share
> information very well.
It would indeed be useful to implement, but I share your concern that this
would be pretty difficult.
However, there's still something that puzzles me. Let's add a bit more
context.
if (pipe->num_inputs > 2)
brx = &vsp1->bru->entity;
else if (pipe->brx && !drm_pipe->force_brx_release)
brx = pipe->brx;
else if (!vsp1->bru->entity.pipe)
brx = &vsp1->bru->entity;
else
brx = &vsp1->brs->entity;
1. if (!brx)
return -EINVAL;
2. if (brx != pipe->brx) {
...
3. pipe->brx = brx;
...
}
4. format.pad = pipe->brx->source_pad
(1) ensures that brx can't be NULL. (2) is thus always true if pipe->brx is
NULL. (3) then assigns a non-NULL value to pipe->brx. Smatch should thus never
complain about (4), even if it can't backtrack.
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2018-05-28 10:58 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-20 12:10 [GIT PULL FOR v4.18] R-Car VSP1 TLB optimisation Laurent Pinchart
2018-05-25 23:10 ` Mauro Carvalho Chehab
2018-05-25 23:39 ` Laurent Pinchart
2018-05-26 0:24 ` Laurent Pinchart
2018-05-26 11:28 ` Mauro Carvalho Chehab
2018-05-28 8:28 ` Laurent Pinchart
2018-05-28 8:31 ` Laurent Pinchart
2018-05-28 10:17 ` Mauro Carvalho Chehab
2018-05-28 11:18 ` Dan Carpenter
2018-05-28 10:36 ` Dan Carpenter
2018-05-28 10:58 ` Laurent Pinchart [this message]
2018-05-28 12:10 ` Dan Carpenter
2018-05-28 10:03 ` Mauro Carvalho Chehab
2018-05-28 10:48 ` Laurent Pinchart
2018-05-28 10:57 ` Dan Carpenter
2018-05-28 10:20 ` Dan Carpenter
2018-05-28 10:54 ` Laurent Pinchart
2018-05-28 11:07 ` Dan Carpenter
2018-05-28 10:17 ` Dan Carpenter
2018-05-28 10:25 ` Kieran Bingham
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=5458207.P65NUnc4kr@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=dan.carpenter@oracle.com \
--cc=kieran.bingham@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=mchehab+samsung@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.