diff options
-rw-r--r-- | drivers/gpio/gpio-mm-lantiq.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/gpio/gpio-mm-lantiq.c b/drivers/gpio/gpio-mm-lantiq.c index f228b1ce0ce0..789016397c4f 100644 --- a/drivers/gpio/gpio-mm-lantiq.c +++ b/drivers/gpio/gpio-mm-lantiq.c @@ -107,14 +107,13 @@ static int ltq_mm_probe(struct platform_device *pdev) struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); struct ltq_mm *chip; const __be32 *shadow; - int ret = 0; if (!res) { dev_err(&pdev->dev, "failed to get memory resource\n"); return -ENOENT; } - chip = kzalloc(sizeof(*chip), GFP_KERNEL); + chip = devm_kzalloc(&pdev->dev, sizeof(*chip), GFP_KERNEL); if (!chip) return -ENOMEM; @@ -129,10 +128,7 @@ static int ltq_mm_probe(struct platform_device *pdev) if (shadow) chip->shadow = be32_to_cpu(*shadow); - ret = of_mm_gpiochip_add(pdev->dev.of_node, &chip->mmchip); - if (ret) - kfree(chip); - return ret; + return of_mm_gpiochip_add(pdev->dev.of_node, &chip->mmchip); } static const struct of_device_id ltq_mm_match[] = { |