* [PATCH] regulator: as3722: use the platform OF node setter
@ 2026-11-04 18:09 Yige Jiang
2026-11-05 9:00 ` Bartosz Golaszewski
0 siblings, 1 reply; 4+ messages in thread
From: Yige Jiang @ 2026-11-04 18:09 UTC (permalink / raw)
To: Mark Brown
Cc: Yige Jiang, Liam Girdwood, linux-kernel, Bartosz Golaszewski,
WenTao Liang
as3722_get_regulator_dt_data() gets the regulators child node and
assigns it only to dev.of_node. Platform device release now puts
dev.fwnode, leaving the acquired node reference unreleased.
Use platform_device_set_of_node() to synchronize both fields and
give the device its own reference, then put the local lookup
reference. This keeps the node valid for regulator matching and
the platform device lifetime, while also replacing the previous
device-owned reference on a probe retry.
Fixes: 7b5b51b2b05c ("driver core: platform: count references to all kinds of firmware nodes")
Assisted-by: LLM
Signed-off-by: Yige Jiang <yigejiang86@gmail.com>
---
Based on linux-next next-20261102 (2637bdec0535).
Compile-tested: arm64, GCC 14.2.0, W=1, CONFIG_OF_DYNAMIC=y.
COMPILE_TEST=y.
Baseline and patched target objects built from this exact base.
No full kernel/module-link, hardware or runtime test was performed.
AI assistance: Codex (LLM) for ownership analysis, code and changelog.
The earlier dangling-node fix is already present in this base.
drivers/regulator/as3722-regulator.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/regulator/as3722-regulator.c b/drivers/regulator/as3722-regulator.c
index 85e2aaa1a06b..9bf28e4b9821 100644
--- a/drivers/regulator/as3722-regulator.c
+++ b/drivers/regulator/as3722-regulator.c
@@ -596,7 +596,8 @@ static int as3722_get_regulator_dt_data(struct platform_device *pdev,
dev_err(&pdev->dev, "Device is not having regulators node\n");
return -ENODEV;
}
- pdev->dev.of_node = np;
+ platform_device_set_of_node(pdev, np);
+ of_node_put(np);
ret = of_regulator_match(&pdev->dev, np, as3722_regulator_matches,
ARRAY_SIZE(as3722_regulator_matches));
base-commit: 2637bdec0535a2044cd830eba9a79363651d9043
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] regulator: as3722: use the platform OF node setter
2026-11-04 18:09 [PATCH] regulator: as3722: use the platform OF node setter Yige Jiang
@ 2026-11-05 9:00 ` Bartosz Golaszewski
2026-11-05 10:03 ` [PATCH v2] " Yige Jiang
0 siblings, 1 reply; 4+ messages in thread
From: Bartosz Golaszewski @ 2026-11-05 9:00 UTC (permalink / raw)
To: Yige Jiang
Cc: Mark Brown, Liam Girdwood, linux-kernel, Bartosz Golaszewski,
WenTao Liang
On Thu, Nov 05, 2026 at 02:09:20AM +0800, Yige Jiang wrote:
> as3722_get_regulator_dt_data() gets the regulators child node and
> assigns it only to dev.of_node. Platform device release now puts
> dev.fwnode, leaving the acquired node reference unreleased.
>
> Use platform_device_set_of_node() to synchronize both fields and
> give the device its own reference, then put the local lookup
> reference. This keeps the node valid for regulator matching and
> the platform device lifetime, while also replacing the previous
> device-owned reference on a probe retry.
>
> Fixes: 7b5b51b2b05c ("driver core: platform: count references to all kinds of firmware nodes")
> Assisted-by: LLM
> Signed-off-by: Yige Jiang <yigejiang86@gmail.com>
> ---
> Based on linux-next next-20261102 (2637bdec0535).
> Compile-tested: arm64, GCC 14.2.0, W=1, CONFIG_OF_DYNAMIC=y.
> COMPILE_TEST=y.
> Baseline and patched target objects built from this exact base.
> No full kernel/module-link, hardware or runtime test was performed.
> AI assistance: Codex (LLM) for ownership analysis, code and changelog.
>
> The earlier dangling-node fix is already present in this base.
>
> drivers/regulator/as3722-regulator.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/regulator/as3722-regulator.c b/drivers/regulator/as3722-regulator.c
> index 85e2aaa1a06b..9bf28e4b9821 100644
> --- a/drivers/regulator/as3722-regulator.c
> +++ b/drivers/regulator/as3722-regulator.c
> @@ -596,7 +596,8 @@ static int as3722_get_regulator_dt_data(struct platform_device *pdev,
> dev_err(&pdev->dev, "Device is not having regulators node\n");
> return -ENODEV;
> }
> - pdev->dev.of_node = np;
> + platform_device_set_of_node(pdev, np);
> + of_node_put(np);
>
> ret = of_regulator_match(&pdev->dev, np, as3722_regulator_matches,
> ARRAY_SIZE(as3722_regulator_matches));
>
Same comment as for the other patch, use __free(device_node).
Bart
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2] regulator: as3722: use the platform OF node setter
2026-11-05 9:00 ` Bartosz Golaszewski
@ 2026-11-05 10:03 ` Yige Jiang
2026-11-05 11:20 ` Mark Brown
0 siblings, 1 reply; 4+ messages in thread
From: Yige Jiang @ 2026-11-05 10:03 UTC (permalink / raw)
To: Mark Brown
Cc: Yige Jiang, Liam Girdwood, linux-kernel, Bartosz Golaszewski,
WenTao Liang
as3722_get_regulator_dt_data() gets the regulators child node and
assigns it only to dev.of_node. Platform device release now puts
dev.fwnode, leaving the acquired node reference unreleased.
Use platform_device_set_of_node() to synchronize both fields and
give the device its own reference. Use __free(device_node) to release
the local lookup reference when the function returns. This keeps
the node valid for regulator matching and the platform device
lifetime, while also replacing the previous device-owned reference
on a probe retry.
Fixes: 7b5b51b2b05c ("driver core: platform: count references to all kinds of firmware nodes")
Signed-off-by: Yige Jiang <yigejiang86@gmail.com>
---
Changes in v2:
- Use __free(device_node) for the local lookup reference, as suggested
by Bartosz Golaszewski, instead of an explicit of_node_put().
- Remove the Assisted-by trailer; keep the disclosure below.
Based on linux-next next-20261102 (2637bdec0535).
Compile-tested: arm64, GCC 14.2.0, W=1, CONFIG_OF_DYNAMIC=y.
COMPILE_TEST=y.
Baseline and v2 target objects built from this exact base.
No full kernel/module-link, hardware or runtime test was performed.
AI assistance was used for analysis and patch preparation.
The earlier dangling-node fix is already present in this base.
drivers/regulator/as3722-regulator.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/regulator/as3722-regulator.c b/drivers/regulator/as3722-regulator.c
index 85e2aaa1a06b..ffcefd72316a 100644
--- a/drivers/regulator/as3722-regulator.c
+++ b/drivers/regulator/as3722-regulator.c
@@ -585,18 +585,18 @@
static int as3722_get_regulator_dt_data(struct platform_device *pdev,
struct as3722_regulators *as3722_regs)
{
- struct device_node *np;
struct as3722_regulator_config_data *reg_config;
u32 prop;
int id;
int ret;
- np = of_get_child_by_name(pdev->dev.parent->of_node, "regulators");
+ struct device_node *np __free(device_node) =
+ of_get_child_by_name(pdev->dev.parent->of_node, "regulators");
if (!np) {
dev_err(&pdev->dev, "Device is not having regulators node\n");
return -ENODEV;
}
- pdev->dev.of_node = np;
+ platform_device_set_of_node(pdev, np);
ret = of_regulator_match(&pdev->dev, np, as3722_regulator_matches,
ARRAY_SIZE(as3722_regulator_matches));
base-commit: 2637bdec0535a2044cd830eba9a79363651d9043
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] regulator: as3722: use the platform OF node setter
2026-11-05 10:03 ` [PATCH v2] " Yige Jiang
@ 2026-11-05 11:20 ` Mark Brown
0 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2026-11-05 11:20 UTC (permalink / raw)
To: Yige Jiang; +Cc: Liam Girdwood, linux-kernel, Bartosz Golaszewski, WenTao Liang
[-- Attachment #1: Type: text/plain, Size: 545 bytes --]
On Thu, Nov 05, 2026 at 06:03:41PM +0800, Yige Jiang wrote:
> as3722_get_regulator_dt_data() gets the regulators child node and
> assigns it only to dev.of_node. Platform device release now puts
> dev.fwnode, leaving the acquired node reference unreleased.
Please don't send new patches in reply to old patches or serieses, this
makes it harder for both people and tools to understand what is going
on - it can bury things in mailboxes and make it difficult to keep track
of what current patches are, both for the new patches and the old ones.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-11-05 11:20 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-04 18:09 [PATCH] regulator: as3722: use the platform OF node setter Yige Jiang
2026-11-05 9:00 ` Bartosz Golaszewski
2026-11-05 10:03 ` [PATCH v2] " Yige Jiang
2026-11-05 11:20 ` Mark Brown
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®