diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-25 21:06:30 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-25 21:06:30 -0800 |
commit | 422d26b6ecd77af8c77f2a40580679459825170f (patch) | |
tree | 632e690e458fb7b27db200cd6fcd5429e143e419 /drivers/gpio/gpio-mvebu.c | |
parent | 4c271bb67c04253c1e99006eb48fb773a8fe8c0f (diff) | |
parent | 949db153b6466c6f7cad5a427ecea94985927311 (diff) | |
download | lwn-422d26b6ecd77af8c77f2a40580679459825170f.tar.gz lwn-422d26b6ecd77af8c77f2a40580679459825170f.zip |
Merge 3.8-rc5 into driver-core-next
This resolves a gpio driver merge issue pointed out in linux-next.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpio/gpio-mvebu.c')
-rw-r--r-- | drivers/gpio/gpio-mvebu.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c index bf6c7c989aee..7472182967ce 100644 --- a/drivers/gpio/gpio-mvebu.c +++ b/drivers/gpio/gpio-mvebu.c @@ -546,10 +546,8 @@ static int mvebu_gpio_probe(struct platform_device *pdev) spin_lock_init(&mvchip->lock); mvchip->membase = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(mvchip->membase)) { - kfree(mvchip->chip.label); + if (IS_ERR(mvchip->membase)) return PTR_ERR(mvchip->membase); - } /* The Armada XP has a second range of registers for the * per-CPU registers */ @@ -557,16 +555,13 @@ static int mvebu_gpio_probe(struct platform_device *pdev) res = platform_get_resource(pdev, IORESOURCE_MEM, 1); if (! res) { dev_err(&pdev->dev, "Cannot get memory resource\n"); - kfree(mvchip->chip.label); return -ENODEV; } mvchip->percpu_membase = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(mvchip->percpu_membase)) { - kfree(mvchip->chip.label); + if (IS_ERR(mvchip->percpu_membase)) return PTR_ERR(mvchip->percpu_membase); - } } /* @@ -625,7 +620,6 @@ static int mvebu_gpio_probe(struct platform_device *pdev) mvchip->irqbase = irq_alloc_descs(-1, 0, ngpios, -1); if (mvchip->irqbase < 0) { dev_err(&pdev->dev, "no irqs\n"); - kfree(mvchip->chip.label); return -ENOMEM; } @@ -633,7 +627,6 @@ static int mvebu_gpio_probe(struct platform_device *pdev) mvchip->membase, handle_level_irq); if (! gc) { dev_err(&pdev->dev, "Cannot allocate generic irq_chip\n"); - kfree(mvchip->chip.label); return -ENOMEM; } @@ -668,7 +661,6 @@ static int mvebu_gpio_probe(struct platform_device *pdev) irq_remove_generic_chip(gc, IRQ_MSK(ngpios), IRQ_NOREQUEST, IRQ_LEVEL | IRQ_NOPROBE); kfree(gc); - kfree(mvchip->chip.label); return -ENODEV; } |