i2c: iop3xx: Fix memory leak in probe error path
[sfrench/cifs-2.6.git] / drivers / i2c / busses / i2c-iop3xx.c
index 38556381f4cadb999025adfd7b97f0f791abdb4f..2f8b8050a223375b8fec23999032df2a2bd6b137 100644 (file)
@@ -433,13 +433,17 @@ iop3xx_i2c_probe(struct platform_device *pdev)
        adapter_data->gpio_scl = devm_gpiod_get_optional(&pdev->dev,
                                                         "scl",
                                                         GPIOD_ASIS);
-       if (IS_ERR(adapter_data->gpio_scl))
-               return PTR_ERR(adapter_data->gpio_scl);
+       if (IS_ERR(adapter_data->gpio_scl)) {
+               ret = PTR_ERR(adapter_data->gpio_scl);
+               goto free_both;
+       }
        adapter_data->gpio_sda = devm_gpiod_get_optional(&pdev->dev,
                                                         "sda",
                                                         GPIOD_ASIS);
-       if (IS_ERR(adapter_data->gpio_sda))
-               return PTR_ERR(adapter_data->gpio_sda);
+       if (IS_ERR(adapter_data->gpio_sda)) {
+               ret = PTR_ERR(adapter_data->gpio_sda);
+               goto free_both;
+       }
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!res) {