Use devm_kzalloc() functions to make cleanup paths simpler.

Signed-off-by: Jingoo Han <[email protected]>
---
 drivers/i2c/busses/i2c-viperboard.c |   12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/i2c/busses/i2c-viperboard.c 
b/drivers/i2c/busses/i2c-viperboard.c
index c68450c..6976e1c 100644
--- a/drivers/i2c/busses/i2c-viperboard.c
+++ b/drivers/i2c/busses/i2c-viperboard.c
@@ -367,7 +367,7 @@ static int vprbrd_i2c_probe(struct platform_device *pdev)
        int ret;
        int pipe;
 
-       vb_i2c = kzalloc(sizeof(*vb_i2c), GFP_KERNEL);
+       vb_i2c = devm_kzalloc(&pdev->dev, sizeof(*vb_i2c), GFP_KERNEL);
        if (vb_i2c == NULL)
                return -ENOMEM;
 
@@ -394,14 +394,12 @@ static int vprbrd_i2c_probe(struct platform_device *pdev)
            if (ret != 1) {
                dev_err(&pdev->dev,
                        "failure setting i2c_bus_freq to %d\n", i2c_bus_freq);
-               ret = -EIO;
-               goto error;
+               return -EIO;
            }
        } else {
                dev_err(&pdev->dev,
                        "invalid i2c_bus_freq setting:%d\n", i2c_bus_freq);
-               ret = -EIO;
-               goto error;
+               return -EIO;
        }
 
        vb_i2c->i2c.dev.parent = &pdev->dev;
@@ -412,10 +410,6 @@ static int vprbrd_i2c_probe(struct platform_device *pdev)
        platform_set_drvdata(pdev, vb_i2c);
 
        return 0;
-
-error:
-       kfree(vb_i2c);
-       return ret;
 }
 
 static int vprbrd_i2c_remove(struct platform_device *pdev)
-- 
1.7.10.4


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

Reply via email to