When vb2_queue_init() fails, dev->empress_dev
should be released just like other error handling
paths.

Fixes: 2ada815fc48bb ("[media] saa7134: convert to vb2")
Signed-off-by: Dinghao Liu <dinghao....@zju.edu.cn>
---
 drivers/media/pci/saa7134/saa7134-empress.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/media/pci/saa7134/saa7134-empress.c 
b/drivers/media/pci/saa7134/saa7134-empress.c
index 39e3c7f8c5b4..76a37fbd8458 100644
--- a/drivers/media/pci/saa7134/saa7134-empress.c
+++ b/drivers/media/pci/saa7134/saa7134-empress.c
@@ -282,8 +282,11 @@ static int empress_init(struct saa7134_dev *dev)
        q->lock = &dev->lock;
        q->dev = &dev->pci->dev;
        err = vb2_queue_init(q);
-       if (err)
+       if (err) {
+               video_device_release(dev->empress_dev);
+               dev->empress_dev = NULL;
                return err;
+       }
        dev->empress_dev->queue = q;
        dev->empress_dev->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING 
|
                                        V4L2_CAP_VIDEO_CAPTURE;
-- 
2.17.1

Reply via email to