From: Nikolay Balandin <nbalan...@dev.rtsoft.ru>

Use devm_kzalloc() to make cleanup paths simpler.

Signed-off-by: Nikolay Balandin <nbalan...@dev.rtsoft.ru>
---
 drivers/gpio/gpio-sx150x.c |   13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/drivers/gpio/gpio-sx150x.c b/drivers/gpio/gpio-sx150x.c
index 796b6c4..17c67be 100644
--- a/drivers/gpio/gpio-sx150x.c
+++ b/drivers/gpio/gpio-sx150x.c
@@ -591,18 +591,19 @@ static int sx150x_probe(struct i2c_client *client,
        if (!i2c_check_functionality(client->adapter, i2c_funcs))
                return -ENOSYS;
 
-       chip = kzalloc(sizeof(struct sx150x_chip), GFP_KERNEL);
+       chip = devm_kzalloc(&client->dev,
+               sizeof(struct sx150x_chip), GFP_KERNEL);
        if (!chip)
                return -ENOMEM;
 
        sx150x_init_chip(chip, client, id->driver_data, pdata);
        rc = sx150x_init_hw(chip, pdata);
        if (rc < 0)
-               goto probe_fail_pre_gpiochip_add;
+               return rc;
 
        rc = gpiochip_add(&chip->gpio_chip);
-       if (rc < 0)
-               goto probe_fail_pre_gpiochip_add;
+       if (rc)
+               return rc;
 
        if (pdata->irq_summary >= 0) {
                rc = sx150x_install_irq_chip(chip,
@@ -617,8 +618,6 @@ static int sx150x_probe(struct i2c_client *client,
        return 0;
 probe_fail_post_gpiochip_add:
        WARN_ON(gpiochip_remove(&chip->gpio_chip) < 0);
-probe_fail_pre_gpiochip_add:
-       kfree(chip);
        return rc;
 }
 
@@ -635,8 +634,6 @@ static int sx150x_remove(struct i2c_client *client)
        if (chip->irq_summary >= 0)
                sx150x_remove_irq_chip(chip);
 
-       kfree(chip);
-
        return 0;
 }
 
-- 
1.7.9.5

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

Reply via email to