]> git.itanic.dy.fi Git - linux-stable/commitdiff
media: qcom: camss: Fix V4L2 async notifier error path
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Wed, 30 Aug 2023 15:16:07 +0000 (16:16 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 3 Dec 2023 06:32:10 +0000 (07:32 +0100)
[ Upstream commit b278080a89f452063915beda0ade6b3ed5ee4271 ]

Previously the jump label err_cleanup was used higher in the probe()
function to release the async notifier however the async notifier
registration was moved later in the code rendering the previous four jumps
redundant.

Rename the label from err_cleanup to err_v4l2_device_unregister to capture
what the jump does.

Fixes: 51397a4ec75d ("media: qcom: Initialise V4L2 async notifier later")
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
[hverkuil: fix old name in commit log: err_v4l2_device_register -> err_v4l2_device_unregister]
Stable-dep-of: f69791c39745 ("media: qcom: camss: Fix genpd cleanup")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/platform/qcom/camss/camss.c

index f794215948e716b91ee9856261916b300d20bfd2..f490ad22669602681f7dc4f322c896e1c844d95c 100644 (file)
@@ -1615,21 +1615,21 @@ static int camss_probe(struct platform_device *pdev)
 
        ret = camss_icc_get(camss);
        if (ret < 0)
-               goto err_cleanup;
+               return ret;
 
        ret = camss_configure_pd(camss);
        if (ret < 0) {
                dev_err(dev, "Failed to configure power domains: %d\n", ret);
-               goto err_cleanup;
+               return ret;
        }
 
        ret = camss_init_subdevices(camss);
        if (ret < 0)
-               goto err_cleanup;
+               return ret;
 
        ret = dma_set_mask_and_coherent(dev, 0xffffffff);
        if (ret)
-               goto err_cleanup;
+               return ret;
 
        camss->media_dev.dev = camss->dev;
        strscpy(camss->media_dev.model, "Qualcomm Camera Subsystem",
@@ -1641,7 +1641,7 @@ static int camss_probe(struct platform_device *pdev)
        ret = v4l2_device_register(camss->dev, &camss->v4l2_dev);
        if (ret < 0) {
                dev_err(dev, "Failed to register V4L2 device: %d\n", ret);
-               goto err_cleanup;
+               return ret;
        }
 
        v4l2_async_nf_init(&camss->notifier);
@@ -1649,12 +1649,12 @@ static int camss_probe(struct platform_device *pdev)
        num_subdevs = camss_of_parse_ports(camss);
        if (num_subdevs < 0) {
                ret = num_subdevs;
-               goto err_cleanup;
+               goto err_v4l2_device_unregister;
        }
 
        ret = camss_register_entities(camss);
        if (ret < 0)
-               goto err_cleanup;
+               goto err_v4l2_device_unregister;
 
        if (num_subdevs) {
                camss->notifier.ops = &camss_subdev_notifier_ops;
@@ -1689,7 +1689,7 @@ static int camss_probe(struct platform_device *pdev)
 
 err_register_subdevs:
        camss_unregister_entities(camss);
-err_cleanup:
+err_v4l2_device_unregister:
        v4l2_device_unregister(&camss->v4l2_dev);
        v4l2_async_nf_cleanup(&camss->notifier);