linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johan Hovold <johan-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Grygorii Strashko <grygorii.strashko-l0cyMroinI0@public.gmane.org>
Cc: Johan Hovold <johan-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Keerthy <j-keerthy-l0cyMroinI0@public.gmane.org>,
	linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
	ssantosh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	nsekhar-l0cyMroinI0@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	fcooper-l0cyMroinI0@public.gmane.org
Subject: Re: [PATCH 2/4] gpio: davinci: Handle the return value of davinci_gpio_irq_setup function
Date: Fri, 21 Jul 2017 09:46:01 +0200	[thread overview]
Message-ID: <20170721074601.GC2729@localhost> (raw)
In-Reply-To: <02965359-ecf1-b934-6b7a-87162d7d00a4-l0cyMroinI0@public.gmane.org>

On Thu, Jul 20, 2017 at 04:34:42PM -0500, Grygorii Strashko wrote:
> 
> 
> On 07/20/2017 05:05 AM, Johan Hovold wrote:
> > On Thu, Jul 20, 2017 at 03:32:27PM +0530, Keerthy wrote:
> >> On Thursday 20 July 2017 03:20 PM, Johan Hovold wrote:
> >>> 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:
> > 
> >>>>>> 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 <arvind.yadav.cs-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> >>>> 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.
> >>
> >> Okay got it. One more clk_unprepare_disable() call needs to be there in
> >> probe err path.
> > 
> > No, you need to balance it on driver unbind, that is, in a new remove()
> > callback.
> > 
> 
> Sry, but manual driver unbind for this driver is really smth unexpected ;(

It certainly wouldn't be something often used (e.g. besides during
development) but that doesn't mean it should not be implemented.

> So, I'm not sure if it need to be implemented and even yes - it should not be
> a part of this patch.

That's why I said "separate, but related" above.

> Probably, smth like "convert driver to be a module".
>
> By the way, I've tried to unbind gpio-omap, result - failure (expected),
> as unbind does not take into account module refcnt state.

Indeed. We also have CONFIG_DEBUG_TEST_DRIVER_REMOVE which would try to
unbind this driver during probe if enabled.

Getting into the habit of properly cleaning up allocated and enabled
resources is only a good thing; it shows that the author has thought
this through and serves as documentation of what needs to be released in
both probe error paths and driver unbind callbacks.

Assumptions also change over time (e.g. deferred probe and
CONFIG_DEBUG_TEST_DRIVER_REMOVE), and by not taking such shortcuts we
are also preventing incomplete code from being copied and reproduced in
other drivers (e.g. on hotpluggable buses).

So, just add the remove callback (in a separate patch) and everything is
good.

Thanks,
Johan
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-07-21  7:46 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-18 10:57 [PATCH 0/4] gpio: davinci: Add keystone-k2g support and few clean ups Keerthy
     [not found] ` <1500375436-9435-1-git-send-email-j-keerthy-l0cyMroinI0@public.gmane.org>
2017-07-18 10:57   ` [PATCH 1/4] gpio: davinci: Use devm_gpiochip_add_data in place of gpiochip_add_data Keerthy
2017-07-18 16:50     ` Suman Anna
     [not found]       ` <0aa79585-c88e-e5b7-c260-6e9ceee6d776-l0cyMroinI0@public.gmane.org>
2017-07-18 17:45         ` Keerthy
2017-07-19  9:37     ` Johan Hovold
2017-07-19  9:58       ` Keerthy
2017-07-18 10:57 ` [PATCH 2/4] gpio: davinci: Handle the return value of davinci_gpio_irq_setup function Keerthy
2017-07-18 16:54   ` Suman Anna
2017-07-18 17:46     ` Keerthy
2017-07-19 11:10   ` Johan Hovold
2017-07-20  6:44     ` Keerthy
2017-07-20  9:10       ` Keerthy
2017-07-20  9:50         ` Johan Hovold
2017-07-20 10:02           ` Keerthy
     [not found]             ` <47055927-5102-b39f-fdbb-b5d89cb14632-l0cyMroinI0@public.gmane.org>
2017-07-20 10:05               ` Johan Hovold
2017-07-20 10:10                 ` Keerthy
2017-07-20 21:34                 ` Grygorii Strashko
2017-07-21  3:53                   ` Keerthy
     [not found]                   ` <02965359-ecf1-b934-6b7a-87162d7d00a4-l0cyMroinI0@public.gmane.org>
2017-07-21  7:46                     ` Johan Hovold [this message]
2017-07-18 10:57 ` [PATCH 3/4] gpio: davinci: Add a separate compatible for keystone-k2g soc Keerthy
2017-07-18 11:31   ` Sekhar Nori
2017-07-18 17:48     ` Keerthy
2017-07-24 18:24   ` Rob Herring
2017-07-25  3:22     ` Keerthy
2017-07-18 10:57 ` [PATCH 4/4] ARM: dts: keystone-k2g-evm: Add gpio nodes Keerthy
2017-07-18 19:13   ` Suman Anna
     [not found]     ` <1cd6ef99-a98e-7cdb-5c2a-f5cd057eef41-l0cyMroinI0@public.gmane.org>
2017-07-19  4:06       ` Keerthy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170721074601.GC2729@localhost \
    --to=johan-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=fcooper-l0cyMroinI0@public.gmane.org \
    --cc=grygorii.strashko-l0cyMroinI0@public.gmane.org \
    --cc=j-keerthy-l0cyMroinI0@public.gmane.org \
    --cc=linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=nsekhar-l0cyMroinI0@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=ssantosh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).