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:
parent
d1e164289e
commit
f6a5242b7c
@ -1504,7 +1504,7 @@ static int cio2_notifier_init(struct cio2_device *cio2)
|
|||||||
sizeof(struct sensor_async_subdev),
|
sizeof(struct sensor_async_subdev),
|
||||||
cio2_fwnode_parse);
|
cio2_fwnode_parse);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
goto out;
|
||||||
|
|
||||||
if (list_empty(&cio2->notifier.asd_list))
|
if (list_empty(&cio2->notifier.asd_list))
|
||||||
return -ENODEV; /* no endpoint */
|
return -ENODEV; /* no endpoint */
|
||||||
@ -1514,9 +1514,13 @@ static int cio2_notifier_init(struct cio2_device *cio2)
|
|||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(&cio2->pci_dev->dev,
|
dev_err(&cio2->pci_dev->dev,
|
||||||
"failed to register async notifier : %d\n", ret);
|
"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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user