From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: Sebastian Reichel <sre@kernel.org>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
David Woodhouse <dwmw2@infradead.org>,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [RFT PATCH] power: bq2415x_charger: Properly handle ENODEV from power_supply_get_by_phandle
Date: Wed, 15 Oct 2014 13:11:31 +0200 [thread overview]
Message-ID: <1413371491.26771.15.camel@AMDC1943> (raw)
In-Reply-To: <20141015090512.GA26651@earth.universe>
On śro, 2014-10-15 at 11:05 +0200, Sebastian Reichel wrote:
> Hi Krzysztof,
>
> On Tue, Oct 14, 2014 at 10:32:53AM +0200, Krzysztof Kozlowski wrote:
> > The power_supply_get_by_phandle() on error returns ENODEV or NULL.
> > The driver later expects obtained pointer to power supply to be
> > valid or NULL. If it is not NULL then it dereferences it in
> > bq2415x_notifier_call() which would lead to dereferencing ENODEV-value
> > pointer.
> >
> > Properly handle the power_supply_get_by_phandle() error case and abort probe.
> >
> > Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> > Fixes: faffd234cf85 ("bq2415x_charger: Add DT support")
> > Cc: <stable@vger.kernel.org>
>
> That looks valid, but I guess this should change one more thing:
>
> > ---
> > drivers/power/bq2415x_charger.c | 7 ++++++-
> > 1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/power/bq2415x_charger.c b/drivers/power/bq2415x_charger.c
> > index e384844a1ae1..d9c457217b6a 100644
> > --- a/drivers/power/bq2415x_charger.c
> > +++ b/drivers/power/bq2415x_charger.c
> > @@ -1579,8 +1579,13 @@ static int bq2415x_probe(struct i2c_client *client,
> > if (np) {
> > bq->notify_psy = power_supply_get_by_phandle(np, "ti,usb-charger-detection");
> >
> > - if (!bq->notify_psy)
> > + if (!bq->notify_psy) {
> > return -EPROBE_DEFER;
>
> this also needs to goto error_2. I guess something as the following
> is needed:
>
> if (IS_ERR_OR_NULL(bq->notify_psy)) {
> if (bq->notify_psy)
> dev_err(&client->dev, "no 'ti,usb-charger-detection' property\n");
> ret = PTR_ERR(bq->notify_psy);
> goto error_2;
> }
So you do not want to defer the probe? What if notified charger will
come online after this probe?
Second idea - now I think my change is not compatible with bindings
(documentation) and could break booting of existing boards which do not
provide the "ti,usb-charger-detection" property. For example
arch/arm/boot/dts/omap3-n900.dts
The "ti,usb-charger-detection" property is marked as optional but my
patch actually makes it required.
It should be rather like this:
if (IS_ERR(bq->notify_psy)) {
bq->notify_psy = NULL;
dev_info(&client->dev, "no 'ti,usb-charger-detection' property \n");
} else if (!bq->notify_psy) {
ret = -EPROBE_DEFER;
goto error_2;
}
What do you think?
Krzysztof
> > + } else if (IS_ERR(bq->notify_psy)) {
> > + dev_err(&client->dev, "no 'ti,usb-charger-detection' property\n");
> > + ret = PTR_ERR(bq->notify_psy);
> > + goto error_2;
> > + }
> > }
> > else if (pdata->notify_device)
> > bq->notify_psy = power_supply_get_by_name(pdata->notify_device);
>
> -- Sebastian
next prev parent reply other threads:[~2014-10-15 11:11 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-14 8:32 [RFT PATCH] power: bq2415x_charger: Properly handle ENODEV from power_supply_get_by_phandle Krzysztof Kozlowski
2014-10-15 9:05 ` Sebastian Reichel
2014-10-15 11:11 ` Krzysztof Kozlowski [this message]
2014-10-15 13:58 ` Sebastian Reichel
2014-10-15 14:09 ` Krzysztof Kozlowski
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=1413371491.26771.15.camel@AMDC1943 \
--to=k.kozlowski@samsung.com \
--cc=dbaryshkov@gmail.com \
--cc=dwmw2@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=sre@kernel.org \
--cc=stable@vger.kernel.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 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.