From: Samuel Holland <samuel@sholland.org>
To: "Heiko Stübner" <heiko@sntech.de>, "Chen-Yu Tsai" <wens@csie.org>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org,
Arnd Bergmann <arnd@arndb.de>,
Hans de Goede <hdegoede@redhat.com>,
Icenowy Zheng <icenowy@aosc.io>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Maxime Ripard <mripard@kernel.org>,
Rob Herring <robh+dt@kernel.org>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-sunxi@lists.linux.dev
Subject: Re: [PATCH v2 05/10] soc: sunxi: sram: Fix probe function ordering issues
Date: Mon, 15 Aug 2022 19:05:12 -0500 [thread overview]
Message-ID: <1a35fbd8-201a-1391-64de-da2b89f3db3f@sholland.org> (raw)
In-Reply-To: <6807552.18pcnM708K@diego>
On 8/15/22 9:06 AM, Heiko Stübner wrote:
> Am Montag, 15. August 2022, 06:12:42 CEST schrieb Samuel Holland:
>> Errors from debugfs are intended to be non-fatal, and should not prevent
>> the driver from probing.
>>
>> Since debugfs file creation is treated as infallible, move it below the
>> parts of the probe function that can fail. This prevents an error
>> elsewhere in the probe function from causing the file to leak. Do the
>> same for the call to of_platform_populate().
>>
>> Finally, checkpatch suggests an octal literal for the file permissions.
>>
>> Fixes: 4af34b572a85 ("drivers: soc: sunxi: Introduce SoC driver to map SRAMs")
>> Fixes: 5828729bebbb ("soc: sunxi: export a regmap for EMAC clock reg on A64")
>> Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
>> Signed-off-by: Samuel Holland <samuel@sholland.org>
>
> Tested-by: Heiko Stuebner <heiko@sntech.de>
>
> but one thing below
>
>> ---
>>
>> (no changes since v1)
>>
>> drivers/soc/sunxi/sunxi_sram.c | 13 +++++--------
>> 1 file changed, 5 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/soc/sunxi/sunxi_sram.c b/drivers/soc/sunxi/sunxi_sram.c
>> index a858a37fcdd4..52d07bed7664 100644
>> --- a/drivers/soc/sunxi/sunxi_sram.c
>> +++ b/drivers/soc/sunxi/sunxi_sram.c
>> @@ -332,9 +332,9 @@ static struct regmap_config sunxi_sram_emac_clock_regmap = {
>>
>> static int __init sunxi_sram_probe(struct platform_device *pdev)
>> {
>> - struct dentry *d;
>> struct regmap *emac_clock;
>> const struct sunxi_sramc_variant *variant;
>> + struct device *dev = &pdev->dev;
>>
>> sram_dev = &pdev->dev;
>>
>> @@ -346,13 +346,6 @@ static int __init sunxi_sram_probe(struct platform_device *pdev)
>> if (IS_ERR(base))
>> return PTR_ERR(base);
>>
>> - of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev);
>> -
>> - d = debugfs_create_file("sram", S_IRUGO, NULL, NULL,
>> - &sunxi_sram_fops);
>> - if (!d)
>> - return -ENOMEM;
>> -
>> if (variant->num_emac_clocks > 0) {
>> emac_clock = devm_regmap_init_mmio(&pdev->dev, base,
>> &sunxi_sram_emac_clock_regmap);
>> @@ -361,6 +354,10 @@ static int __init sunxi_sram_probe(struct platform_device *pdev)
>> return PTR_ERR(emac_clock);
>> }
>>
>> + of_platform_populate(dev->of_node, NULL, NULL, dev);
>
> hmm, of_platform_populate() can actually fail [0] it just looks a bit like
> sunxi driver seem to ignore that by {chance, design?} [1] .
>
> So I guess this might want to have handling for probably unlikely
> possible errors instead?
Strictly speaking, neither this driver nor the DE2 bus driver depend on any of
the child nodes having a platform device present or a driver attached. So
failing to populate the child devices should not necessarily prevent this driver
from probing. Possibly it deserves a dev_warn(), but...
I don't think of_platform_populate() can actually fail when passed a valid node.
of_platform_bus_create() calls itself recursively, but otherwise always returns 0.
Regards,
Samuel
> Heiko
>
> [0] https://elixir.bootlin.com/linux/latest/source/drivers/of/platform.c#L463
> [1] https://elixir.bootlin.com/linux/latest/source/drivers/bus/sun50i-de2.c#L22
>> +
>> + debugfs_create_file("sram", 0444, NULL, NULL, &sunxi_sram_fops);
>> +
>> return 0;
>> }
next prev parent reply other threads:[~2022-08-16 6:17 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-15 4:12 [PATCH v2 00/10] soc: sunxi: sram: Fixes and D1 support Samuel Holland
2022-08-15 4:12 ` [PATCH v2 01/10] dt-bindings: sram: sunxi-sram: Clean up the compatible lists Samuel Holland
2022-08-15 12:15 ` Andre Przywara
2022-08-15 13:54 ` Heiko Stübner
2022-08-16 5:55 ` Krzysztof Kozlowski
2022-08-15 4:12 ` [PATCH v2 02/10] dt-bindings: sram: sunxi-sram: Add D1 compatible string Samuel Holland
2022-08-15 13:55 ` Heiko Stübner
2022-08-16 7:46 ` Krzysztof Kozlowski
2022-08-15 4:12 ` [PATCH v2 03/10] soc: sunxi: sram: Actually claim SRAM regions Samuel Holland
2022-08-15 13:56 ` Heiko Stübner
2022-08-15 4:12 ` [PATCH v2 04/10] soc: sunxi: sram: Prevent the driver from being unbound Samuel Holland
2022-08-15 14:00 ` Heiko Stübner
2022-08-15 4:12 ` [PATCH v2 05/10] soc: sunxi: sram: Fix probe function ordering issues Samuel Holland
2022-08-15 14:06 ` Heiko Stübner
2022-08-16 0:05 ` Samuel Holland [this message]
2022-08-15 4:12 ` [PATCH v2 06/10] soc: sunxi: sram: Fix debugfs info for A64 SRAM C Samuel Holland
2022-08-15 4:12 ` [PATCH v2 07/10] soc: sunxi: sram: Return void from the release function Samuel Holland
2022-08-15 14:09 ` Heiko Stübner
2022-08-15 4:12 ` [PATCH v2 08/10] soc: sunxi: sram: Save a pointer to the OF match data Samuel Holland
2022-08-15 14:10 ` Heiko Stübner
2022-08-15 4:12 ` [PATCH v2 09/10] soc: sunxi: sram: Export the LDO control register Samuel Holland
2022-08-15 14:13 ` Heiko Stübner
2022-08-15 4:12 ` [PATCH v2 10/10] soc: sunxi: sram: Add support for the D1 system control Samuel Holland
2022-08-15 14:14 ` Heiko Stübner
2022-08-15 6:58 ` [PATCH v2 00/10] soc: sunxi: sram: Fixes and D1 support Conor.Dooley
2022-08-15 6:59 ` Conor.Dooley
2022-09-18 21:49 ` Jernej Škrabec
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=1a35fbd8-201a-1391-64de-da2b89f3db3f@sholland.org \
--to=samuel@sholland.org \
--cc=arnd@arndb.de \
--cc=devicetree@vger.kernel.org \
--cc=hdegoede@redhat.com \
--cc=heiko@sntech.de \
--cc=icenowy@aosc.io \
--cc=jernej.skrabec@gmail.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=mripard@kernel.org \
--cc=robh+dt@kernel.org \
--cc=wens@csie.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
all inboxes | Powered by JetHome®