Message ID | 20200603013532.755220-1-yukuai3@huawei.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 66339f2fba3fa05b0507e1887e4c6abcfc6228a3 |
Headers | show |
Series | [V2] pinctrl: sirf: add missing put_device() call in sirfsoc_gpio_probe() | expand |
On 2020/6/3 9:35, yu kuai wrote: > A coccicheck run provided information like the following: > > drivers/pinctrl/sirf/pinctrl-sirf.c:798:2-8: ERROR: missing put_device; > call of_find_device_by_node on line 792, but without a corresponding > object release within this function. > > Generated by: scripts/coccinelle/free/put_device.cocci > > Thus add a jump target to fix the exception handling for this > function implementation. > > Fixes: 5130216265f6 ("PINCTRL: SiRF: add GPIO and GPIO irq support in CSR SiRFprimaII") > Signed-off-by: yu kuai <yukuai3@huawei.com> > --- > drivers/pinctrl/sirf/pinctrl-sirf.c | 20 ++++++++++++++------ > 1 file changed, 14 insertions(+), 6 deletions(-) Sorry about the missing change log: Changes in V2: change the variant of commit message suggested by Markus. Best Regards, Yu Kuai
On Wed, Jun 3, 2020 at 3:36 AM yu kuai <yukuai3@huawei.com> wrote: > A coccicheck run provided information like the following: > > drivers/pinctrl/sirf/pinctrl-sirf.c:798:2-8: ERROR: missing put_device; > call of_find_device_by_node on line 792, but without a corresponding > object release within this function. > > Generated by: scripts/coccinelle/free/put_device.cocci > > Thus add a jump target to fix the exception handling for this > function implementation. > > Fixes: 5130216265f6 ("PINCTRL: SiRF: add GPIO and GPIO irq support in CSR SiRFprimaII") > Signed-off-by: yu kuai <yukuai3@huawei.com> Patch applied, thanks! Yours, Linus Walleij
diff --git a/drivers/pinctrl/sirf/pinctrl-sirf.c b/drivers/pinctrl/sirf/pinctrl-sirf.c index 1ebcb957c654..63a287d5795f 100644 --- a/drivers/pinctrl/sirf/pinctrl-sirf.c +++ b/drivers/pinctrl/sirf/pinctrl-sirf.c @@ -794,13 +794,17 @@ static int sirfsoc_gpio_probe(struct device_node *np) return -ENODEV; sgpio = devm_kzalloc(&pdev->dev, sizeof(*sgpio), GFP_KERNEL); - if (!sgpio) - return -ENOMEM; + if (!sgpio) { + err = -ENOMEM; + goto out_put_device; + } spin_lock_init(&sgpio->lock); regs = of_iomap(np, 0); - if (!regs) - return -ENOMEM; + if (!regs) { + err = -ENOMEM; + goto out_put_device; + } sgpio->chip.gc.request = sirfsoc_gpio_request; sgpio->chip.gc.free = sirfsoc_gpio_free; @@ -824,8 +828,10 @@ static int sirfsoc_gpio_probe(struct device_node *np) girq->parents = devm_kcalloc(&pdev->dev, SIRFSOC_GPIO_NO_OF_BANKS, sizeof(*girq->parents), GFP_KERNEL); - if (!girq->parents) - return -ENOMEM; + if (!girq->parents) { + err = -ENOMEM; + goto out_put_device; + } for (i = 0; i < SIRFSOC_GPIO_NO_OF_BANKS; i++) { bank = &sgpio->sgpio_bank[i]; spin_lock_init(&bank->lock); @@ -868,6 +874,8 @@ static int sirfsoc_gpio_probe(struct device_node *np) gpiochip_remove(&sgpio->chip.gc); out: iounmap(regs); +out_put_device: + put_device(&pdev->dev); return err; }
A coccicheck run provided information like the following: drivers/pinctrl/sirf/pinctrl-sirf.c:798:2-8: ERROR: missing put_device; call of_find_device_by_node on line 792, but without a corresponding object release within this function. Generated by: scripts/coccinelle/free/put_device.cocci Thus add a jump target to fix the exception handling for this function implementation. Fixes: 5130216265f6 ("PINCTRL: SiRF: add GPIO and GPIO irq support in CSR SiRFprimaII") Signed-off-by: yu kuai <yukuai3@huawei.com> --- drivers/pinctrl/sirf/pinctrl-sirf.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-)