[media] vivid: fix error return code in vivid_create_instance()
authorWei Yongjun <weiyongjun1@huawei.com>
Thu, 15 Sep 2016 03:36:09 +0000 (00:36 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Mon, 19 Sep 2016 17:18:42 +0000 (14:18 -0300)
Fix to return error code -ENOMEM from the memory or workqueue alloc
error handling case instead of 0, as done elsewhere in this function.

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/platform/vivid/vivid-core.c

index 741460ab68abf1118e254dcf200034b69a419f7f..5464fefbaab9dda90f055e76c7350a16d8e949b2 100644 (file)
@@ -839,6 +839,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
                dev->radio_tx_caps = V4L2_CAP_RDS_OUTPUT | V4L2_CAP_MODULATOR |
                                     V4L2_CAP_READWRITE;
 
+       ret = -ENOMEM;
        /* initialize the test pattern generator */
        tpg_init(&dev->tpg, 640, 360);
        if (tpg_alloc(&dev->tpg, MAX_ZOOM * MAX_WIDTH))
@@ -1033,8 +1034,10 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
         */
        dev->cec_workqueue =
                alloc_ordered_workqueue("vivid-%03d-cec", WQ_MEM_RECLAIM, inst);
-       if (!dev->cec_workqueue)
+       if (!dev->cec_workqueue) {
+               ret = -ENOMEM;
                goto unreg_dev;
+       }
 
        /* start creating the vb2 queues */
        if (dev->has_vid_cap) {