From: Gregory CLEMENT <gregory.clement@free-electrons.com>
To: Mark Brown <broonie@kernel.org>
Cc: Liam Girdwood <lgirdwood@gmail.com>,
linux-kernel@vger.kernel.org,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
Maxime Ripard <maxime.ripard@free-electrons.com>,
Boris BREZILLON <boris.brezillon@free-electrons.com>,
Lior Amsalem <alior@marvell.com>,
Tawfik Bayouk <tawfik@marvell.com>,
Nadav Haklai <nadavh@marvell.com>,
linux-ide@vger.kernel.org
Subject: Re: [PATCH 1/2] regulator: core: Add a sanity check on the regulator_ enable/disable functions
Date: Tue, 06 Jan 2015 13:26:28 +0100 [thread overview]
Message-ID: <54ABD474.6060403@free-electrons.com> (raw)
In-Reply-To: <20150106120012.GW2634@sirena.org.uk>
Hi Mark,
On 06/01/2015 13:00, Mark Brown wrote:
> On Tue, Jan 06, 2015 at 12:36:02PM +0100, Gregory CLEMENT wrote:
>> Hi Mark,
>>
>> On 29/12/2014 16:40, Mark Brown wrote:
>>> On Fri, Dec 26, 2014 at 06:26:38PM +0100, Gregory CLEMENT wrote:
>
>>> No, especially in the case of regulator_enable() this is deliberate -
>>> we're trying to ensure that if people are using regulators they're being
>>> careful about it, checking error codes and so on. I'd really want to
>
>> OK so at least we should check that the pointer is not NULL before using it
>> and inform the user of it by using a WARNING() or even a BUG() instead of
>> just let the kernel crash latter.
>
> Just crashing on the NULL is just about as good in terms of
> discoverabilty and any consumer that is assuming NULL is not a valid
> regulator is buggy in any case, any non-error pointer could be a valid
> regulator as far as users are concerned.
>
>>> see some persuasive use case for this. What you're saying here sounds
>>> like the consumer shouldn't be treating the regulator as optional at
>>> all but should instead be using a normal regulator.
>
>> Being able to deal with NULL pointer in the disable function is convenient
>> and is done in other similar subsystems such as phy or clk for example. Instead
>> of having a check on the NULL pointer in each driver, it seems more logical to
>> do it directly in the disable function.
>
> This really only applies if it's likely that some thing that always gets
> used if it's there might be missing which isn't the case for regulators,
> it's not at all common to have power supplies that might be missing and
Well the pattern the following pattern is very common in the drivers using
the regulator:
if (!IS_ERR(regulator_pointer)
regulator_disable(regulator_pointer);
So for me it was a good hint that we can factorize it.
> if they are missing NULL isn't a good way to track them.
>
> If you're having problems with this and need workarounds in the core to
> make your driver code look OK that sounds like things are working since
> it sounds like the driver code is probably abusing the API here.
I don't _need_ it at all. It was just an improvement but if you don't want it,
I am fine with it.
Thanks,
Gregory
--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
next prev parent reply other threads:[~2015-01-06 12:26 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-26 17:26 (unknown), Gregory CLEMENT
2014-12-26 17:26 ` Gregory CLEMENT
2014-12-26 17:26 ` [PATCH 1/2] regulator: core: Add a sanity check on the regulator_ enable/disable functions Gregory CLEMENT
2014-12-29 15:40 ` Mark Brown
2015-01-06 11:36 ` Gregory CLEMENT
2015-01-06 12:00 ` Mark Brown
2015-01-06 12:26 ` Gregory CLEMENT [this message]
2015-01-06 16:03 ` Mark Brown
2014-12-26 17:26 ` [PATCH 2/2] regulator: core: Add the device tree version to the regulator_get family Gregory CLEMENT
2014-12-29 15:49 ` Mark Brown
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=54ABD474.6060403@free-electrons.com \
--to=gregory.clement@free-electrons.com \
--cc=alior@marvell.com \
--cc=boris.brezillon@free-electrons.com \
--cc=broonie@kernel.org \
--cc=ezequiel.garcia@free-electrons.com \
--cc=lgirdwood@gmail.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.ripard@free-electrons.com \
--cc=nadavh@marvell.com \
--cc=tawfik@marvell.com \
--cc=thomas.petazzoni@free-electrons.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.