public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] V4L2: fix subdevice matching in asynchronous probing
@ 2013-04-19 14:41 Guennadi Liakhovetski
  2013-04-22 10:34 ` Laurent Pinchart
  0 siblings, 1 reply; 3+ messages in thread
From: Guennadi Liakhovetski @ 2013-04-19 14:41 UTC (permalink / raw)
  To: Linux Media Mailing List; +Cc: Prabhakar Lad

A wrapped list iterating loop hasn't been correctly recognised in
v4l2_async_belongs(), which led to false positives. Fix the bug by
verifying the loop termination condition.

Reported-by: Prabhakar Lad <prabhakar.csengg@gmail.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
---

Prabhakar, please, check, whether this fixes your problem.

 drivers/media/v4l2-core/v4l2-async.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
index 5d6b428..5631944 100644
--- a/drivers/media/v4l2-core/v4l2-async.c
+++ b/drivers/media/v4l2-core/v4l2-async.c
@@ -76,6 +76,10 @@ static struct v4l2_async_subdev *v4l2_async_belongs(struct v4l2_async_notifier *
 			break;
 	}
 
+	if (&asd->list == &notifier->waiting)
+		/* Wrapped - no match found */
+		return NULL;
+
 	return asd;
 }
 
-- 
1.7.2.5


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] V4L2: fix subdevice matching in asynchronous probing
  2013-04-19 14:41 [PATCH] V4L2: fix subdevice matching in asynchronous probing Guennadi Liakhovetski
@ 2013-04-22 10:34 ` Laurent Pinchart
  2013-04-22 10:43   ` Guennadi Liakhovetski
  0 siblings, 1 reply; 3+ messages in thread
From: Laurent Pinchart @ 2013-04-22 10:34 UTC (permalink / raw)
  To: Guennadi Liakhovetski; +Cc: Linux Media Mailing List, Prabhakar Lad

Hi Guennadi,

On Friday 19 April 2013 16:41:02 Guennadi Liakhovetski wrote:
> A wrapped list iterating loop hasn't been correctly recognised in
> v4l2_async_belongs(), which led to false positives. Fix the bug by
> verifying the loop termination condition.
> 
> Reported-by: Prabhakar Lad <prabhakar.csengg@gmail.com>
> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> ---
> 
> Prabhakar, please, check, whether this fixes your problem.
> 
>  drivers/media/v4l2-core/v4l2-async.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/media/v4l2-core/v4l2-async.c
> b/drivers/media/v4l2-core/v4l2-async.c index 5d6b428..5631944 100644
> --- a/drivers/media/v4l2-core/v4l2-async.c
> +++ b/drivers/media/v4l2-core/v4l2-async.c
> @@ -76,6 +76,10 @@ static struct v4l2_async_subdev
> *v4l2_async_belongs(struct v4l2_async_notifier *
> 			break;
>  	}
> 
> +	if (&asd->list == &notifier->waiting)
> +		/* Wrapped - no match found */
> +		return NULL;
> +
>  	return asd;
>  }

What about just

                if (match && match(sd->dev, hw))
                        return asd;
        }

        return NULL;
}

That's a bit simpler.

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] V4L2: fix subdevice matching in asynchronous probing
  2013-04-22 10:34 ` Laurent Pinchart
@ 2013-04-22 10:43   ` Guennadi Liakhovetski
  0 siblings, 0 replies; 3+ messages in thread
From: Guennadi Liakhovetski @ 2013-04-22 10:43 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: Linux Media Mailing List, Prabhakar Lad

On Mon, 22 Apr 2013, Laurent Pinchart wrote:

> Hi Guennadi,
> 
> On Friday 19 April 2013 16:41:02 Guennadi Liakhovetski wrote:
> > A wrapped list iterating loop hasn't been correctly recognised in
> > v4l2_async_belongs(), which led to false positives. Fix the bug by
> > verifying the loop termination condition.
> > 
> > Reported-by: Prabhakar Lad <prabhakar.csengg@gmail.com>
> > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> > ---
> > 
> > Prabhakar, please, check, whether this fixes your problem.
> > 
> >  drivers/media/v4l2-core/v4l2-async.c |    4 ++++
> >  1 files changed, 4 insertions(+), 0 deletions(-)
> > 
> > diff --git a/drivers/media/v4l2-core/v4l2-async.c
> > b/drivers/media/v4l2-core/v4l2-async.c index 5d6b428..5631944 100644
> > --- a/drivers/media/v4l2-core/v4l2-async.c
> > +++ b/drivers/media/v4l2-core/v4l2-async.c
> > @@ -76,6 +76,10 @@ static struct v4l2_async_subdev
> > *v4l2_async_belongs(struct v4l2_async_notifier *
> > 			break;
> >  	}
> > 
> > +	if (&asd->list == &notifier->waiting)
> > +		/* Wrapped - no match found */
> > +		return NULL;
> > +
> >  	return asd;
> >  }
> 
> What about just
> 
>                 if (match && match(sd->dev, hw))
>                         return asd;
>         }
> 
>         return NULL;
> }
> 
> That's a bit simpler.

Well, if it were simpler, it would've occurred to me instead of the other 
"more complex" solution, tight? ;-) No, sure, looks better, thanks! As 
soon as the actual patches are approved in principle, I'll merge this into 
them.

Regards
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-04-22 10:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-19 14:41 [PATCH] V4L2: fix subdevice matching in asynchronous probing Guennadi Liakhovetski
2013-04-22 10:34 ` Laurent Pinchart
2013-04-22 10:43   ` Guennadi Liakhovetski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox