From: Herve Codina <herve.codina@bootlin.com>
To: Lee Jones <lee@kernel.org>
Cc: Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
Takashi Iwai <tiwai@suse.com>,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
alsa-devel@alsa-project.org,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Subject: Re: [PATCH v6 2/7] mfd: core: Ensure disabled devices are skiped without aborting
Date: Thu, 20 Apr 2023 14:52:02 +0200 [thread overview]
Message-ID: <20230420145202.4e21b51d@bootlin.com> (raw)
In-Reply-To: <20230420122955.GA996918@google.com>
On Thu, 20 Apr 2023 13:29:55 +0100
Lee Jones <lee@kernel.org> wrote:
> On Mon, 17 Apr 2023, Herve Codina wrote:
>
> > The loop searching for a matching device based on its compatible
> > string is aborted when a matching disabled device is found.
> > This abort avoid to add devices as soon as one disabled device
> > is found.
> >
> > Continue searching for an other device instead of aborting on the
> > first disabled one fixes the issue.
> >
> > Fixes: 22380b65dc70 ("mfd: mfd-core: Ensure disabled devices are ignored without error")
> > Signed-off-by: Herve Codina <herve.codina@bootlin.com>
> > ---
> > drivers/mfd/mfd-core.c | 18 +++++++++++++-----
> > 1 file changed, 13 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c
> > index 16d1861e9682..7c47b50b358d 100644
> > --- a/drivers/mfd/mfd-core.c
> > +++ b/drivers/mfd/mfd-core.c
> > @@ -176,6 +176,7 @@ static int mfd_add_device(struct device *parent, int id,
> > struct platform_device *pdev;
> > struct device_node *np = NULL;
> > struct mfd_of_node_entry *of_entry, *tmp;
> > + bool not_available;
> > int ret = -ENOMEM;
> > int platform_id;
> > int r;
> > @@ -211,13 +212,13 @@ static int mfd_add_device(struct device *parent, int id,
> > goto fail_res;
> >
> > if (IS_ENABLED(CONFIG_OF) && parent->of_node && cell->of_compatible) {
> > + not_available = false;
>
> Why not do:
>
> bool disabled = false;
>
> ... here instead?
Yes, I can change to 'disabled'.
>
> > for_each_child_of_node(parent->of_node, np) {
> > if (of_device_is_compatible(np, cell->of_compatible)) {
> > - /* Ignore 'disabled' devices error free */
> > + /* Skip 'disabled' devices */
> > if (!of_device_is_available(np)) {
> > - of_node_put(np);
>
> Why are you removing the put?
The of_node_put() is done internally by for_each_child_of_node() calling
of_get_next_child().
As the for_each_child_of_node() loop is not break, the of_node_put() must
not be called here as it will be called by of_get_next_child().
>
> > - ret = 0;
> > - goto fail_alias;
> > + not_available = true;
> > + continue;
> > }
> >
> > ret = mfd_match_of_node_to_dev(pdev, np, cell);
> > @@ -227,10 +228,17 @@ static int mfd_add_device(struct device *parent, int id,
> > if (ret)
> > goto fail_alias;
> >
> > - break;
> > + goto match;
> > }
> > }
> >
> > + if (not_available) {
> > + /* Ignore 'disabled' devices error free */
> > + ret = 0;
> > + goto fail_alias;
> > + }
> > +
> > +match:
> > if (!pdev->dev.of_node)
> > pr_warn("%s: Failed to locate of_node [id: %d]\n",
> > cell->name, platform_id);
> > --
> > 2.39.2
> >
>
Best regards,
Hervé
next prev parent reply other threads:[~2023-04-20 12:52 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-17 17:15 [PATCH v6 0/7] Add the Lantiq PEF2256 audio support Herve Codina
2023-04-17 17:15 ` [PATCH v6 1/7] dt-bindings: mfd: Add the Lantiq PEF2256 E1/T1/J1 framer Herve Codina via Alsa-devel
2023-04-17 17:15 ` Herve Codina
2023-04-17 17:15 ` [PATCH v6 2/7] mfd: core: Ensure disabled devices are skiped without aborting Herve Codina
2023-04-20 12:29 ` Lee Jones
2023-04-20 12:29 ` Lee Jones
2023-04-20 12:52 ` Herve Codina [this message]
2023-04-20 12:52 ` Herve Codina via Alsa-devel
2023-04-17 17:15 ` Herve Codina via Alsa-devel
2023-04-17 17:15 ` [PATCH v6 3/7] mfd: Add support for the Lantiq PEF2256 framer Herve Codina via Alsa-devel
2023-04-17 17:15 ` Herve Codina
2023-04-20 12:39 ` Lee Jones
2023-04-20 12:39 ` Lee Jones
2023-04-20 13:15 ` Herve Codina
2023-04-20 13:47 ` Lee Jones
2023-04-20 13:47 ` Lee Jones
2023-04-21 7:26 ` Herve Codina via Alsa-devel
2023-04-21 7:26 ` Herve Codina
2023-04-21 7:45 ` Lee Jones
2023-04-21 7:45 ` Lee Jones
2023-04-21 7:52 ` Krzysztof Kozlowski
2023-04-21 7:52 ` Krzysztof Kozlowski
2023-04-24 9:52 ` Lee Jones
2023-04-24 9:52 ` Lee Jones
2023-04-24 14:11 ` Krzysztof Kozlowski
2023-04-24 14:11 ` Krzysztof Kozlowski
2023-04-20 13:15 ` Herve Codina via Alsa-devel
2023-04-17 17:15 ` [PATCH v6 4/7] Documentation: sysfs: Document the Lantiq PEF2256 sysfs entry Herve Codina via Alsa-devel
2023-04-17 17:15 ` Herve Codina
2023-04-17 17:15 ` [PATCH v6 5/7] pinctrl: Add support for the Lantic PEF2256 pinmux Herve Codina
2023-04-17 17:15 ` Herve Codina via Alsa-devel
2023-04-17 17:16 ` [PATCH v6 6/7] ASoC: codecs: Add support for the Lantiq PEF2256 codec Herve Codina via Alsa-devel
2023-04-17 17:16 ` Herve Codina
2023-04-22 4:18 ` kernel test robot
2023-04-17 17:16 ` [PATCH v6 7/7] MAINTAINERS: Add the Lantiq PEF2256 driver entry Herve Codina via Alsa-devel
2023-04-17 17:16 ` Herve Codina
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=20230420145202.4e21b51d@bootlin.com \
--to=herve.codina@bootlin.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=lee@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=perex@perex.cz \
--cc=robh+dt@kernel.org \
--cc=thomas.petazzoni@bootlin.com \
--cc=tiwai@suse.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.