iio: temperature: ltc2983: Use single error path to put OF node
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 7 Mar 2022 20:36:05 +0000 (22:36 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 4 Apr 2022 08:11:24 +0000 (09:11 +0100)
There are several, possibly copied'n'pasted, places in the functions,
where OF node is put and error returned directly, while the common
exit point exists. Unify all these cases to use a single error path.

Suggested-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20220307203606.87258-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/temperature/ltc2983.c

index 94d6dd4..636bbc9 100644 (file)
@@ -653,8 +653,6 @@ static struct ltc2983_sensor *ltc2983_thermocouple_new(
 
        phandle = of_parse_phandle(child, "adi,cold-junction-handle", 0);
        if (phandle) {
-               int ret;
-
                ret = of_property_read_u32(phandle, "reg",
                                           &thermo->cold_junction_chan);
                if (ret) {
@@ -663,8 +661,7 @@ static struct ltc2983_sensor *ltc2983_thermocouple_new(
                         * the error right away.
                         */
                        dev_err(&st->spi->dev, "Property reg must be given\n");
-                       of_node_put(phandle);
-                       return ERR_PTR(-EINVAL);
+                       goto fail;
                }
        }
 
@@ -676,8 +673,8 @@ static struct ltc2983_sensor *ltc2983_thermocouple_new(
                                                             propname, false,
                                                             16384, true);
                if (IS_ERR(thermo->custom)) {
-                       of_node_put(phandle);
-                       return ERR_CAST(thermo->custom);
+                       ret = PTR_ERR(thermo->custom);
+                       goto fail;
                }
        }
 
@@ -687,6 +684,10 @@ static struct ltc2983_sensor *ltc2983_thermocouple_new(
 
        of_node_put(phandle);
        return &thermo->sensor;
+
+fail:
+       of_node_put(phandle);
+       return ERR_PTR(ret);
 }
 
 static struct ltc2983_sensor *ltc2983_rtd_new(const struct device_node *child,
@@ -803,8 +804,8 @@ static struct ltc2983_sensor *ltc2983_rtd_new(const struct device_node *child,
                                                          "adi,custom-rtd",
                                                          false, 2048, false);
                if (IS_ERR(rtd->custom)) {
-                       of_node_put(phandle);
-                       return ERR_CAST(rtd->custom);
+                       ret = PTR_ERR(rtd->custom);
+                       goto fail;
                }
        }
 
@@ -926,8 +927,8 @@ static struct ltc2983_sensor *ltc2983_thermistor_new(
                                                                 steinhart,
                                                                 64, false);
                if (IS_ERR(thermistor->custom)) {
-                       of_node_put(phandle);
-                       return ERR_CAST(thermistor->custom);
+                       ret = PTR_ERR(thermistor->custom);
+                       goto fail;
                }
        }
        /* set common parameters */