summaryrefslogtreecommitdiff
path: root/drivers/media/pci
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@linux.intel.com>2023-10-16 10:23:22 +0300
committerHans Verkuil <hverkuil-cisco@xs4all.nl>2023-11-22 10:56:34 +0100
commite34660972b88e8d27f17e220fe13609b5cd52ec2 (patch)
tree015efc0cb2d2a757b3c205b03acdd039a054f7e5 /drivers/media/pci
parent153cbfc8bdc55642578d0b513c04496ee27b6430 (diff)
media: ivsc: csi: Clean up V4L2 async notifier on error
Clean up the V4L2 async notifier in error handling path, and add label to unify handling. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Tested-by: Wentong Wu <wentong.wu@intel.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Diffstat (limited to 'drivers/media/pci')
-rw-r--r--drivers/media/pci/intel/ivsc/mei_csi.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/media/pci/intel/ivsc/mei_csi.c b/drivers/media/pci/intel/ivsc/mei_csi.c
index 790b1101d579..19f1a47ba52d 100644
--- a/drivers/media/pci/intel/ivsc/mei_csi.c
+++ b/drivers/media/pci/intel/ivsc/mei_csi.c
@@ -672,16 +672,20 @@ static int mei_csi_parse_firmware(struct mei_csi *csi)
asd = v4l2_async_nf_add_fwnode(&csi->notifier, fwnode,
struct v4l2_async_connection);
+ fwnode_handle_put(fwnode);
if (IS_ERR(asd)) {
- fwnode_handle_put(fwnode);
- return PTR_ERR(asd);
+ ret = PTR_ERR(asd);
+ goto out_nf_cleanup;
}
- fwnode_handle_put(fwnode);
-
ret = v4l2_async_nf_register(&csi->notifier);
if (ret)
- v4l2_async_nf_cleanup(&csi->notifier);
+ goto out_nf_cleanup;
+
+ return 0;
+
+out_nf_cleanup:
+ v4l2_async_nf_cleanup(&csi->notifier);
return ret;
}