OSDN Git Service

soc: qcom: smp2p: Use common error handling code in qcom_smp2p_probe()
authorMarkus Elfring <elfring@users.sourceforge.net>
Thu, 2 Nov 2017 18:27:33 +0000 (19:27 +0100)
committerAndy Gross <andy.gross@linaro.org>
Mon, 1 Jan 2018 06:29:09 +0000 (00:29 -0600)
* Add a jump target so that a specific error message is stored only once
  at the end of this function implementation.

* Replace two calls of the function "dev_err" by goto statements.

* Adjust two condition checks.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
drivers/soc/qcom/smp2p.c

index 669c8ba..c22503c 100644 (file)
@@ -473,17 +473,13 @@ static int qcom_smp2p_probe(struct platform_device *pdev)
 
        key = "qcom,local-pid";
        ret = of_property_read_u32(pdev->dev.of_node, key, &smp2p->local_pid);
-       if (ret < 0) {
-               dev_err(&pdev->dev, "failed to read %s\n", key);
-               return -EINVAL;
-       }
+       if (ret)
+               goto report_read_failure;
 
        key = "qcom,remote-pid";
        ret = of_property_read_u32(pdev->dev.of_node, key, &smp2p->remote_pid);
-       if (ret < 0) {
-               dev_err(&pdev->dev, "failed to read %s\n", key);
-               return -EINVAL;
-       }
+       if (ret)
+               goto report_read_failure;
 
        irq = platform_get_irq(pdev, 0);
        if (irq < 0) {
@@ -566,6 +562,10 @@ release_mbox:
        mbox_free_channel(smp2p->mbox_chan);
 
        return ret;
+
+report_read_failure:
+       dev_err(&pdev->dev, "failed to read %s\n", key);
+       return -EINVAL;
 }
 
 static int qcom_smp2p_remove(struct platform_device *pdev)