kfree_exit only returns ret, remove it. This also fixes the
devm_regmap_init_spi error case where the probe wouldn't actually fail
because ret is initialized to 0.

Signed-off-by: Alexandre Belloni <alexandre.bell...@bootlin.com>
---
 drivers/rtc/rtc-pcf2123.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/rtc/rtc-pcf2123.c b/drivers/rtc/rtc-pcf2123.c
index 106d5a4cf9b8..2e2a14134346 100644
--- a/drivers/rtc/rtc-pcf2123.c
+++ b/drivers/rtc/rtc-pcf2123.c
@@ -389,10 +389,9 @@ static int pcf2123_probe(struct spi_device *spi)
        dev_set_drvdata(&spi->dev, pcf2123);
 
        pcf2123->map = devm_regmap_init_spi(spi, &pcf2123_regmap_config);
-
        if (IS_ERR(pcf2123->map)) {
                dev_err(&spi->dev, "regmap init failed.\n");
-               goto kfree_exit;
+               return PTR_ERR(pcf2123->map);
        }
 
        ret = pcf2123_rtc_read_time(&spi->dev, &tm);
@@ -400,7 +399,7 @@ static int pcf2123_probe(struct spi_device *spi)
                ret = pcf2123_reset(&spi->dev);
                if (ret < 0) {
                        dev_err(&spi->dev, "chip not found\n");
-                       goto kfree_exit;
+                       return ret;
                }
        }
 
@@ -413,8 +412,7 @@ static int pcf2123_probe(struct spi_device *spi)
 
        if (IS_ERR(rtc)) {
                dev_err(&spi->dev, "failed to register.\n");
-               ret = PTR_ERR(rtc);
-               goto kfree_exit;
+               return PTR_ERR(rtc);
        }
 
        pcf2123->rtc = rtc;
@@ -439,9 +437,6 @@ static int pcf2123_probe(struct spi_device *spi)
        pcf2123->rtc->uie_unsupported = 1;
 
        return 0;
-
-kfree_exit:
-       return ret;
 }
 
 #ifdef CONFIG_OF
-- 
2.21.0

Reply via email to