Use the devm_kzalloc managed function to stripdown the error and remove
code.

Signed-off-by: Maxime Ripard <maxime.rip...@free-electrons.com>
Acked-by: Jean Delvare <kh...@linux-fr.org>
Acked-by: Peter Korsgaard <jac...@sunsite.dk>
---
 drivers/i2c/muxes/i2c-mux-gpio.c |   14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/i2c/muxes/i2c-mux-gpio.c b/drivers/i2c/muxes/i2c-mux-gpio.c
index 68b1f8e..ecb1d69 100644
--- a/drivers/i2c/muxes/i2c-mux-gpio.c
+++ b/drivers/i2c/muxes/i2c-mux-gpio.c
@@ -71,7 +71,7 @@ static int __devinit i2c_mux_gpio_probe(struct 
platform_device *pdev)
                return -ENODEV;
        }
 
-       mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+       mux = devm_kzalloc(&pdev->dev, sizeof(*mux), GFP_KERNEL);
        if (!mux) {
                ret = -ENOMEM;
                goto alloc_failed;
@@ -79,11 +79,12 @@ static int __devinit i2c_mux_gpio_probe(struct 
platform_device *pdev)
 
        mux->parent = parent;
        mux->data = *pdata;
-       mux->adap = kzalloc(sizeof(struct i2c_adapter *) * pdata->n_values,
-                           GFP_KERNEL);
+       mux->adap = devm_kzalloc(&pdev->dev,
+                                sizeof(*mux->adap) * pdata->n_values,
+                                GFP_KERNEL);
        if (!mux->adap) {
                ret = -ENOMEM;
-               goto alloc_failed2;
+               goto alloc_failed;
        }
 
        if (pdata->idle != I2C_MUX_GPIO_NO_IDLE) {
@@ -128,9 +129,6 @@ add_adapter_failed:
 err_request_gpio:
        for (; i > 0; i--)
                gpio_free(pdata->gpios[i - 1]);
-       kfree(mux->adap);
-alloc_failed2:
-       kfree(mux);
 alloc_failed:
        i2c_put_adapter(parent);
 
@@ -150,8 +148,6 @@ static int __devexit i2c_mux_gpio_remove(struct 
platform_device *pdev)
 
        platform_set_drvdata(pdev, NULL);
        i2c_put_adapter(mux->parent);
-       kfree(mux->adap);
-       kfree(mux);
 
        return 0;
 }
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to