35 lines
1.2 KiB
Diff
35 lines
1.2 KiB
Diff
|
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.
|
||
|
|
||
|
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
|
||
|
|