Re: [PATCH 1/1] gpio: add a driver for the Synopsys DesignWare APB GPIO block
From: delicious quinoa <hidden>
Date: 2013-11-06 23:18:58
Also in:
linux-gpio, lkml
On Wed, Nov 6, 2013 at 5:09 PM, Fabio Estevam [off-list ref] wrote:
On Wed, Nov 6, 2013 at 8:49 PM, Alan Tull [off-list ref] wrote:quoted
+ + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + gpio->regs = devm_ioremap_resource(&pdev->dev, res); + if (!gpio->regs) { + err = -ENOMEM; + goto out_free_ports;The correct way to handle the error here would be: if (IS_ERR(gpio->regs) { err = PTR_ERR(gpio->regs) goto out_free_ports;quoted
+out_unregister: + dwapb_gpio_unregister(gpio); + + if (gpio->domain) { + irq_dispose_mapping(gpio->hwirq); + irq_domain_remove(gpio->domain); + } + +out_free_ports: + devm_kfree(&pdev->dev, gpio->ports);No need to call devm_kfreequoted
+ +out_err: + devm_kfree(&pdev->dev, gpio);Same here.quoted
+ return err; +} + +static int dwapb_gpio_remove(struct platform_device *pdev) +{ + struct dwapb_gpio *gpio = platform_get_drvdata(pdev); + + dwapb_gpio_unregister(gpio); + if (gpio->domain) { + irq_dispose_mapping(gpio->hwirq); + irq_domain_remove(gpio->domain); + } + devm_kfree(&pdev->dev, gpio->ports); + devm_kfree(&pdev->dev, gpio);No need to call devm_kfree Regards, Fabio Estevam
Cool, I agree. I will fix in v7. Thanks, Alan