On Thu Sep 10 19:58:08 2026 +0300, Dmitry Antipov wrote:
> Adjust em28xx_v4l2_init() to setup video and VBI capture queues
> before calling video_register_device(), thus making error cleanup
> work as expected.
> 
> Reported-by: [email protected]
> Closes: https://syzkaller.appspot.com/bug?extid=dd0f06181ab66b93dc00
> Suggested-by: Hans Verkuil <[email protected]>
> Signed-off-by: Dmitry Antipov <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>

Patch committed.

Thanks,
Hans Verkuil

 drivers/media/usb/em28xx/em28xx-video.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

---

diff --git a/drivers/media/usb/em28xx/em28xx-video.c 
b/drivers/media/usb/em28xx/em28xx-video.c
index c8eeb20afc38..186a3043c609 100644
--- a/drivers/media/usb/em28xx/em28xx-video.c
+++ b/drivers/media/usb/em28xx/em28xx-video.c
@@ -2987,6 +2987,14 @@ static int em28xx_v4l2_init(struct em28xx *dev)
        if (dev->chip_id == CHIP_ID_EM2828X || dev->board.decoder == 
EM28XX_BUILTIN)
                v4l2_disable_ioctl(&v4l2->vdev, VIDIOC_ENUM_FRAMESIZES);
 
+       /* initialize videobuf2 stuff */
+       ret = em28xx_vb2_setup(dev);
+       if (ret) {
+               dev_err(&dev->intf->dev,
+                       "unable to setup videobuf queues (error=%i).\n", ret);
+               goto unregister_dev;
+       }
+
        /* register v4l2 video video_device */
        ret = video_register_device(&v4l2->vdev, VFL_TYPE_VIDEO,
                                    video_nr[dev->devno]);
@@ -3072,9 +3080,6 @@ static int em28xx_v4l2_init(struct em28xx *dev)
        /* Save some power by putting tuner to sleep */
        v4l2_device_call_all(&v4l2->v4l2_dev, 0, tuner, standby);
 
-       /* initialize videobuf2 stuff */
-       em28xx_vb2_setup(dev);
-
        dev_info(&dev->intf->dev,
                 "V4L2 extension successfully initialized\n");
 
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to