Message ID | 1315348148-7207-1-git-send-email-laurent.pinchart@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Sep 07, 2011 at 12:29:08AM +0200, Laurent Pinchart wrote: > The uvc_mc_register_entity() function wrongfully selects the > media_entity associated with a UVC entity when creating links. This > results in access to uninitialized media_entity structures and can hit a > BUG_ON statement in media_entity_create_link(). Fix it. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > drivers/media/video/uvc/uvc_entity.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > This patch should fix a v3.0 regression that results in a kernel crash as > reported in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637740 and > https://bugzilla.redhat.com/show_bug.cgi?id=735437. > > Test results will be welcome. I built a test kernel for Fedora with the patch and the submitter of the above bug has reported that the issue seems to be fixed. josh > diff --git a/drivers/media/video/uvc/uvc_entity.c b/drivers/media/video/uvc/uvc_entity.c > index 48fea37..29e2399 100644 > --- a/drivers/media/video/uvc/uvc_entity.c > +++ b/drivers/media/video/uvc/uvc_entity.c > @@ -49,7 +49,7 @@ static int uvc_mc_register_entity(struct uvc_video_chain *chain, > if (remote == NULL) > return -EINVAL; > > - source = (UVC_ENTITY_TYPE(remote) != UVC_TT_STREAMING) > + source = (UVC_ENTITY_TYPE(remote) == UVC_TT_STREAMING) > ? (remote->vdev ? &remote->vdev->entity : NULL) > : &remote->subdev.entity; > if (source == NULL) > -- > Regards, > > Laurent Pinchart > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Josh, On Wednesday 07 September 2011 17:32:41 Josh Boyer wrote: > On Wed, Sep 07, 2011 at 12:29:08AM +0200, Laurent Pinchart wrote: > > The uvc_mc_register_entity() function wrongfully selects the > > media_entity associated with a UVC entity when creating links. This > > results in access to uninitialized media_entity structures and can hit a > > BUG_ON statement in media_entity_create_link(). Fix it. > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > --- > > > > drivers/media/video/uvc/uvc_entity.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > This patch should fix a v3.0 regression that results in a kernel crash as > > reported in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637740 and > > https://bugzilla.redhat.com/show_bug.cgi?id=735437. > > > > Test results will be welcome. > > I built a test kernel for Fedora with the patch and the submitter of the > above bug has reported that the issue seems to be fixed. Thank you. I will push the patch upstream.
diff --git a/drivers/media/video/uvc/uvc_entity.c b/drivers/media/video/uvc/uvc_entity.c index 48fea37..29e2399 100644 --- a/drivers/media/video/uvc/uvc_entity.c +++ b/drivers/media/video/uvc/uvc_entity.c @@ -49,7 +49,7 @@ static int uvc_mc_register_entity(struct uvc_video_chain *chain, if (remote == NULL) return -EINVAL; - source = (UVC_ENTITY_TYPE(remote) != UVC_TT_STREAMING) + source = (UVC_ENTITY_TYPE(remote) == UVC_TT_STREAMING) ? (remote->vdev ? &remote->vdev->entity : NULL) : &remote->subdev.entity; if (source == NULL)
The uvc_mc_register_entity() function wrongfully selects the media_entity associated with a UVC entity when creating links. This results in access to uninitialized media_entity structures and can hit a BUG_ON statement in media_entity_create_link(). Fix it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- drivers/media/video/uvc/uvc_entity.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) This patch should fix a v3.0 regression that results in a kernel crash as reported in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637740 and https://bugzilla.redhat.com/show_bug.cgi?id=735437. Test results will be welcome.