Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935816AbdGTJu4 (ORCPT ); Thu, 20 Jul 2017 05:50:56 -0400 Received: from mail-lf0-f68.google.com ([209.85.215.68]:37624 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933242AbdGTJuw (ORCPT ); Thu, 20 Jul 2017 05:50:52 -0400 Date: Thu, 20 Jul 2017 11:50:47 +0200 From: Johan Hovold To: Keerthy Cc: Johan Hovold , linus.walleij@linaro.org, ssantosh@kernel.org, devicetree@vger.kernel.org, nsekhar@ti.com, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org, fcooper@ti.com Subject: Re: [PATCH 2/4] gpio: davinci: Handle the return value of davinci_gpio_irq_setup function Message-ID: <20170720095047.GA2729@localhost> References: <1500375436-9435-1-git-send-email-j-keerthy@ti.com> <1500375436-9435-3-git-send-email-j-keerthy@ti.com> <20170719111000.GX29638@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.7.2 (2016-11-26) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1907 Lines: 56 On Thu, Jul 20, 2017 at 02:40:37PM +0530, Keerthy wrote: > > > On Thursday 20 July 2017 12:14 PM, Keerthy wrote: > > > > > > On Wednesday 19 July 2017 04:40 PM, Johan Hovold wrote: > >> On Tue, Jul 18, 2017 at 04:27:14PM +0530, Keerthy wrote: > >>> Currently davinci_gpio_irq_setup return value is ignored. Handle the > >>> return value appropriately. > >>> > >>> Signed-off-by: Keerthy > >>> --- > >>> drivers/gpio/gpio-davinci.c | 18 +++++++++++++----- > >>> 1 file changed, 13 insertions(+), 5 deletions(-) > >>> > >>> diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c > >>> index 2c88054..932f270 100644 > >>> --- a/drivers/gpio/gpio-davinci.c > >>> +++ b/drivers/gpio/gpio-davinci.c > >>> @@ -233,15 +233,23 @@ static int davinci_gpio_probe(struct platform_device *pdev) > >>> chips->regs[bank] = gpio_base + offset_array[bank]; > >>> > >>> ret = devm_gpiochip_add_data(dev, &chips->chip, chips); > >>> + if (ret) > >>> + goto err; > >>> + > >>> + platform_set_drvdata(pdev, chips); > >>> + ret = davinci_gpio_irq_setup(pdev); > >>> if (ret) { > >>> - ctrl_num = 0; > >>> - bank_base = 0; > >>> - return ret; > >>> + platform_set_drvdata(pdev, NULL); > >>> + goto err; > >>> } > >>> > >>> - platform_set_drvdata(pdev, chips); > >>> - davinci_gpio_irq_setup(pdev); > >>> return 0; > >> > >> There's a separate but related bug here too as the clk_prepare_enable() > >> in davinci_gpio_irq_setup() is never balanced on driver unbind. > > > > Yes Johan. I will send that as a separate patch. > > This is already fixed in the latest kernel: > > commit 6dc0048cff988858254fcc26becfc1e9753efa79 > Author: Arvind Yadav > Date: Tue May 23 14:48:57 2017 +0530 That change only handles errors in davinci_gpio_irq_setup() (i.e. during probe) and not the imbalance at driver unbind that I was referring to. Johan