media: ipu3-cio2: Clean up notifier's subdev list if parsing endpoints fails

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>
This commit is contained in:
Sakari Ailus 2019-03-04 04:36:40 -05:00 committed by Mauro Carvalho Chehab
parent d1e164289e
commit f6a5242b7c
1 changed files with 6 additions and 2 deletions

View 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;
}