Re: [PATCH] GPIO_KEYS: If devm_add_action() fails, we are explicitly calling the cleanup to freethe resources allocated. Use the helper devm_add_action_or_reset() and return directly in case of error, since the cleanup function has been already called by the helper if there was any error.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 05, 2016 at 10:01:11AM -0700, Bjorn Andersson wrote:
> On Tue 05 Jul 09:18 PDT 2016, Arvind Yadav wrote:
> 
> Your subject line should be a short and descriptive summary, followed by
> an empty line and then potentially a longer description motivating your
> patch.  Please read section #14 of Documentation/SubmittingPatches.
> 
> > Signed-off-by: Arvind Yadav <arvind.yadav.cs@xxxxxxxxx>
> > ---
> >  drivers/input/keyboard/gpio_keys.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
> > index 2909365..a2fa3bb 100644
> > --- a/drivers/input/keyboard/gpio_keys.c
> > +++ b/drivers/input/keyboard/gpio_keys.c
> > @@ -542,7 +542,8 @@ static int gpio_keys_setup_key(struct platform_device *pdev,
> >  	 * Install custom action to cancel release timer and
> >  	 * workqueue item.
> >  	 */
> > -	error = devm_add_action(&pdev->dev, gpio_keys_quiesce_key, bdata);
> > +	error = devm_add_action_or_reset(&pdev->dev, gpio_keys_quiesce_key,
> > +					bdata);
> 
> The code leading up to this initializes the timer and work struct, but
> they are not triggered unless their respective isr is exectued. This
> would not happen until after the request_irq at the end of the function.
> 
> As such there doesn't appear to be a reason for cancelling any work or
> timers.

Agreed.

> 
> >  	if (error) {
> >  		dev_err(&pdev->dev,
> >  			"failed to register quiesce action, error: %d\n",
> 
> Regards,
> Bjorn

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux