From: David Brownell <david-b@pacbell.net>
To: Magnus Damm <magnus.damm@gmail.com>
Cc: linux-kernel@vger.kernel.org, lethal@linux-sh.org,
akpm@linux-foundation.org
Subject: Re: [PATCH] gpiolib: request fixes
Date: Fri, 26 Dec 2008 07:53:14 -0800 [thread overview]
Message-ID: <200812260753.14981.david-b@pacbell.net> (raw)
In-Reply-To: <20081226052121.6472.22847.sendpatchset@rx1.opensource.se>
On Thursday 25 December 2008, Magnus Damm wrote:
> From: Magnus Damm <damm@igel.co.jp>
>
> Fix request related issues in gpiolib such as:
> - fix request-already-requested handling in gpio_request()
> - clear FLAG_REQUESTED on request error in gpio_direction_input()
> - clear FLAG_REQUESTED on request error in gpio_direction_output()
>
> Signed-off-by: Magnus Damm <damm@igel.co.jp>
> ---
>
> drivers/gpio/gpiolib.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> --- 0001/drivers/gpio/gpiolib.c
> +++ work/drivers/gpio/gpiolib.c 2008-12-26 13:09:50.000000000 +0900
> @@ -789,6 +789,7 @@ int gpio_request(unsigned gpio, const ch
> } else {
> status = -EBUSY;
> module_put(chip->owner);
> + goto done;
Right, good catch.
> }
>
> if (chip->request) {
> @@ -924,6 +925,7 @@ int gpio_direction_input(unsigned gpio)
> /* and it's not available to anyone else ...
> * gpio_request() is the fully clean solution.
> */
> + clear_bit(FLAG_REQUESTED, &desc->flags);
NAK, this is insufficient ... it would need to drop the module
refcount and null the label too. Plus this invalidates the
comment. (Same below.)
However a basic premise is that drivers should now be avoiding
this legacy autorequest stuff, using gpio_request() instead.
Hence the comments here, below, and at ensure_requested() to
note the lack of cleanup if these legacy paths lose: small
incentives to "do the right thing". I'd rather see the work
go into making callers stop using autorequest; not making
that mechanism work better.
It may be time to make ensure_requested() use WARN(), which
will create a lot more noise than the current message ... a
larger incentive. :)
> goto lose;
> }
> }
> @@ -977,6 +979,7 @@ int gpio_direction_output(unsigned gpio,
> /* and it's not available to anyone else ...
> * gpio_request() is the fully clean solution.
> */
> + clear_bit(FLAG_REQUESTED, &desc->flags);
> goto lose;
> }
> }
>
>
prev parent reply other threads:[~2008-12-26 15:53 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-26 5:21 [PATCH] gpiolib: request fixes Magnus Damm
2008-12-26 15:53 ` David Brownell [this message]
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=200812260753.14981.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=akpm@linux-foundation.org \
--cc=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=magnus.damm@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.