]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
media: ipu3-cio2: Clean up notifier's subdev list if parsing endpoints fails
authorSakari Ailus <sakari.ailus@linux.intel.com>
Mon, 4 Mar 2019 09:36:40 +0000 (04:36 -0500)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 25 Jul 2019 15:00:25 +0000 (11:00 -0400)
The notifier must be cleaned up whenever parsing endpoints fails. Do that
to avoid a memory leak in that case.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/pci/intel/ipu3/ipu3-cio2.c

index 50a34bcd4d1454bbad03657e277c5b06f4bba202..52bd35c240ddc9b30719b85a4fea542b3bd0d680 100644 (file)
@@ -1504,7 +1504,7 @@ static int cio2_notifier_init(struct cio2_device *cio2)
                sizeof(struct sensor_async_subdev),
                cio2_fwnode_parse);
        if (ret < 0)
-               return ret;
+               goto out;
 
        if (list_empty(&cio2->notifier.asd_list))
                return -ENODEV; /* no endpoint */
@@ -1514,9 +1514,13 @@ static int cio2_notifier_init(struct cio2_device *cio2)
        if (ret) {
                dev_err(&cio2->pci_dev->dev,
                        "failed to register async notifier : %d\n", ret);
-               v4l2_async_notifier_cleanup(&cio2->notifier);
+               goto out;
        }
 
+out:
+       if (ret)
+               v4l2_async_notifier_cleanup(&cio2->notifier);
+
        return ret;
 }