media: ov8865: Fix an error handling path in ov8865_probe()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 7 Aug 2022 06:43:29 +0000 (08:43 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sat, 24 Sep 2022 07:05:49 +0000 (09:05 +0200)
The commit in Fixes also introduced some new error handling which should
goto the existing error handling path.
Otherwise some resources leak.

Fixes: 73dcffeb2ff9 ("media: i2c: Support 19.2MHz input clock in ov8865")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/i2c/ov8865.c

index b8f4f0d3e33d7ff6026276c6ad4e5b2c6d35b138..15d0f79231dd6cde645cd3fd0e2e3a37ab4bb0d2 100644 (file)
@@ -3034,11 +3034,13 @@ static int ov8865_probe(struct i2c_client *client)
                                       &rate);
        if (!ret && sensor->extclk) {
                ret = clk_set_rate(sensor->extclk, rate);
-               if (ret)
-                       return dev_err_probe(dev, ret,
-                                            "failed to set clock rate\n");
+               if (ret) {
+                       dev_err_probe(dev, ret, "failed to set clock rate\n");
+                       goto error_endpoint;
+               }
        } else if (ret && !sensor->extclk) {
-               return dev_err_probe(dev, ret, "invalid clock config\n");
+               dev_err_probe(dev, ret, "invalid clock config\n");
+               goto error_endpoint;
        }
 
        sensor->extclk_rate = rate ? rate : clk_get_rate(sensor->extclk);