All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: Boris Brezillon <boris.brezillon@collabora.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [bug report] drm/vc4: dsi: Fix bridge chain handling
Date: Wed, 24 Jun 2020 22:11:37 +0300	[thread overview]
Message-ID: <20200624191137.GI31008@kadam> (raw)
In-Reply-To: <20200624203025.0ffea151@collabora.com>

On Wed, Jun 24, 2020 at 08:30:25PM +0200, Boris Brezillon wrote:
> Hello Dan,
> 
> On Wed, 24 Jun 2020 20:58:06 +0300
> Dan Carpenter <dan.carpenter@oracle.com> wrote:
> 
> > Hello Boris Brezillon,
> > 
> > The patch 033bfe7538a1: "drm/vc4: dsi: Fix bridge chain handling"
> > from Dec 27, 2019, leads to the following static checker warning:
> > 
> > 	drivers/gpu/drm/vc4/vc4_dsi.c:758 vc4_dsi_encoder_disable()
> > 	warn: iterator used outside loop: 'iter'
> > 
> > drivers/gpu/drm/vc4/vc4_dsi.c
> >    743  static void vc4_dsi_encoder_disable(struct drm_encoder *encoder)
> >    744  {
> >    745          struct vc4_dsi_encoder *vc4_encoder = to_vc4_dsi_encoder(encoder);
> >    746          struct vc4_dsi *dsi = vc4_encoder->dsi;
> >    747          struct device *dev = &dsi->pdev->dev;
> >    748          struct drm_bridge *iter;
> >    749  
> >    750          list_for_each_entry_reverse(iter, &dsi->bridge_chain, chain_node) {
> >    751                  if (iter->funcs->disable)
> >    752                          iter->funcs->disable(iter);
> >    753          }
> > 
> > This loops backwards until iter is parked on the list head.
> > 
> >    754  
> >    755          vc4_dsi_ulps(dsi, true);
> >    756  
> >    757          list_for_each_entry_from(iter, &dsi->bridge_chain, chain_node) {
> > 
> > But then this "continues" until the iter is parked on the list head.
> > Since we ended with the iterator already on the list head then we never
> > enter this loop and it is a no-op.
> > 
> > Am I missing something?
> 
> It should definitely be list_for_each_entry() here. Thanks for
> this report. Would you mind sending a patch?

Yeah.  I can do that tomorrow.

I'm working on a new Smatch check and so I wasn't super familiar with
some of these list_for_each() loops.  Thanks!

regards,
dan carpenter
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

      reply	other threads:[~2020-06-24 19:11 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-24 17:58 [bug report] drm/vc4: dsi: Fix bridge chain handling Dan Carpenter
2020-06-24 18:30 ` Boris Brezillon
2020-06-24 19:11   ` 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=20200624191137.GI31008@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=boris.brezillon@collabora.com \
    --cc=dri-devel@lists.freedesktop.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.