media: ivsc: csi: Clean up V4L2 async notifier on error
authorSakari Ailus <sakari.ailus@linux.intel.com>
Mon, 16 Oct 2023 07:23:22 +0000 (10:23 +0300)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 22 Nov 2023 09:56:34 +0000 (10:56 +0100)
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>
drivers/media/pci/intel/ivsc/mei_csi.c

index 790b1101d57998357ab0cc91a04a8b679ccc7508..19f1a47ba52d7323ab0b11e5c20965799c187d5c 100644 (file)
@@ -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;
 }