diff options
| author | Thierry Reding <thierry.reding@avionic-design.de> | 2013-01-14 11:53:20 +0100 | 
|---|---|---|
| committer | Linus Walleij <linus.walleij@linaro.org> | 2013-01-17 12:27:08 +0100 | 
| commit | 11c0ceec073cb35a1bedfdece701351cfc1da5b7 (patch) | |
| tree | dd54d26489042319f79ab612dd9cf52c9ed8b028 | |
| parent | 6948ce588bd765352df6f6b866f2151e26489ef1 (diff) | |
| download | olio-linux-3.10-11c0ceec073cb35a1bedfdece701351cfc1da5b7.tar.xz olio-linux-3.10-11c0ceec073cb35a1bedfdece701351cfc1da5b7.zip  | |
gpio: mvebu: Don't free chip label memory
The gpio_chip.label field is a const char * and assigned the value of a
call to dev_name(). Memory obtained from dev_name() should not be freed
by drivers.
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| -rw-r--r-- | drivers/gpio/gpio-mvebu.c | 6 | 
1 files changed, 0 insertions, 6 deletions
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c index 7d9bd94be8d..6819d63cb16 100644 --- a/drivers/gpio/gpio-mvebu.c +++ b/drivers/gpio/gpio-mvebu.c @@ -547,7 +547,6 @@ static int mvebu_gpio_probe(struct platform_device *pdev)  	mvchip->membase = devm_request_and_ioremap(&pdev->dev, res);  	if (! mvchip->membase) {  		dev_err(&pdev->dev, "Cannot ioremap\n"); -		kfree(mvchip->chip.label);  		return -ENOMEM;  	} @@ -557,14 +556,12 @@ 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_request_and_ioremap(&pdev->dev, res);  		if (! mvchip->percpu_membase) {  			dev_err(&pdev->dev, "Cannot ioremap\n"); -			kfree(mvchip->chip.label);  			return -ENOMEM;  		}  	} @@ -625,7 +622,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 +629,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 +663,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;  	}  |