[PATCH v2] OMAP3: Keypad: Fix failure exit path in probe

G, Manjunath Kondaiah manjugk at ti.com
Wed Sep 22 05:08:59 EDT 2010


Hi Dmitry,

> -----Original Message-----
> From: Dmitry Torokhov [mailto:dmitry.torokhov at gmail.com] 
> Sent: Tuesday, September 21, 2010 9:57 PM
> To: G, Manjunath Kondaiah
> Cc: Ameya Palande; linux-omap at vger.kernel.org; 
> linux-input at vger.kernel.org; 
> linux-arm-kernel at lists.infradead.org; Tony Lindgren
> Subject: Re: [PATCH v2] OMAP3: Keypad: Fix failure exit path in probe
> 
> Hi,
> 
> On Tue, Sep 21, 2010 at 07:11:01PM +0530, G, Manjunath Kondaiah wrote:
> > 
> > Hi,
> > 
> > > -----Original Message-----
> > > From: Ameya Palande [mailto:ameya.palande at nokia.com]
> > > Sent: Tuesday, September 21, 2010 7:04 PM
> > > To: G, Manjunath Kondaiah
> > > Cc: linux-omap at vger.kernel.org; 
> linux-input at vger.kernel.org; Dmitry 
> > > Torokhov; linux-arm-kernel at lists.infradead.org; Tony Lindgren
> > > Subject: Re: [PATCH v2] OMAP3: Keypad: Fix failure exit path in 
> > > probe
> > > 
> > > Hi Manjunath,
> > > 
> > > On Tue, 2010-09-21 at 13:49 +0200, ext G, Manjunath 
> Kondaiah wrote:
> > > > The failure exit paths seems to be wrong in probe function.
> > > > This patch corrects exit failure paths for error handling cases.
> > > 
> 
> And also adds memory leak...
> 
> 
> > > https://patchwork.kernel.org/patch/160551/
> > > Any comments on this?
> > 
> > Looks fine. Sorry, I didn't look at the change. This 
> version seems to 
> > be better.
> > 
> 
> I do not understand why we need to separate memory 
> allocations. It looks
> like the minimal patch should be like one below.

Thanks. I am ok with this minimal patch.

-Manjunath

> 
> Thanks.
> 
> -- 
> Dmitry
> 
> 
> Input: twl4030_keypad - fix error handling path
> 
> From: Dmitry Torokhov <dmitry.torokhov at gmail.com>
> 
> We should not try to call free_irq() when request_irq() failed.
> 
> Reported-by: G, Manjunath Kondaiah <manjugk at ti.com>
> Signed-off-by: Dmitry Torokhov <dtor at mail.ru>
> ---
> 
>  drivers/input/keyboard/twl4030_keypad.c |    7 +++----
>  1 files changed, 3 insertions(+), 4 deletions(-)
> 
> 
> diff --git a/drivers/input/keyboard/twl4030_keypad.c 
> b/drivers/input/keyboard/twl4030_keypad.c
> index fb16b5e..09bef79 100644
> --- a/drivers/input/keyboard/twl4030_keypad.c
> +++ b/drivers/input/keyboard/twl4030_keypad.c
> @@ -406,23 +406,22 @@ static int __devinit 
> twl4030_kp_probe(struct platform_device *pdev)
>  	if (error) {
>  		dev_info(kp->dbg_dev, "request_irq failed for 
> irq no=%d\n",
>  			kp->irq);
> -		goto err3;
> +		goto err2;
>  	}
>  
>  	/* Enable KP and TO interrupts now. */
>  	reg = (u8) ~(KEYP_IMR1_KP | KEYP_IMR1_TO);
>  	if (twl4030_kpwrite_u8(kp, reg, KEYP_IMR1)) {
>  		error = -EIO;
> -		goto err4;
> +		goto err3;
>  	}
>  
>  	platform_set_drvdata(pdev, kp);
>  	return 0;
>  
> -err4:
> +err3:
>  	/* mask all events - we don't care about the result */
>  	(void) twl4030_kpwrite_u8(kp, 0xff, KEYP_IMR1);
> -err3:
>  	free_irq(kp->irq, NULL);
>  err2:
>  	input_unregister_device(input);
> 


More information about the linux-arm-kernel mailing list