[PATCH] clk: rk808: fix OF node reference imbalance

Johan Hovold posted 1 patch 2 months, 1 week ago
drivers/clk/clk-rk808.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] clk: rk808: fix OF node reference imbalance
Posted by Johan Hovold 2 months, 1 week ago
The driver reuses the OF node of the parent multi-function device but
fails to take another reference to balance the one dropped by the
platform bus code when unbinding the MFD and deregistering the child
devices.

Fix this by using the intended helper for reusing OF nodes.

Fixes: 2dc51ca822e4 ("clk: RK808: Reduce 'struct rk808' usage")
Cc: stable@vger.kernel.org	# 6.5
Cc: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/clk/clk-rk808.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/clk-rk808.c b/drivers/clk/clk-rk808.c
index f7412b137e5e..5a75b5c91555 100644
--- a/drivers/clk/clk-rk808.c
+++ b/drivers/clk/clk-rk808.c
@@ -153,7 +153,7 @@ static int rk808_clkout_probe(struct platform_device *pdev)
 	struct rk808_clkout *rk808_clkout;
 	int ret;
 
-	dev->of_node = pdev->dev.parent->of_node;
+	device_set_of_node_from_dev(dev, dev->parent);
 
 	rk808_clkout = devm_kzalloc(dev,
 				    sizeof(*rk808_clkout), GFP_KERNEL);
-- 
2.52.0
Re: [PATCH] clk: rk808: fix OF node reference imbalance
Posted by Stephen Boyd 1 month, 2 weeks ago
Quoting Johan Hovold (2026-04-07 02:50:27)
> The driver reuses the OF node of the parent multi-function device but
> fails to take another reference to balance the one dropped by the
> platform bus code when unbinding the MFD and deregistering the child
> devices.
> 
> Fix this by using the intended helper for reusing OF nodes.
> 
> Fixes: 2dc51ca822e4 ("clk: RK808: Reduce 'struct rk808' usage")
> Cc: stable@vger.kernel.org      # 6.5
> Cc: Sebastian Reichel <sebastian.reichel@collabora.com>
> Signed-off-by: Johan Hovold <johan@kernel.org>
> ---

Applied to clk-fixes
Re: [PATCH] clk: rk808: fix OF node reference imbalance
Posted by Stephen Boyd 1 month, 2 weeks ago
Quoting Johan Hovold (2026-04-07 02:50:27)
> The driver reuses the OF node of the parent multi-function device but
> fails to take another reference to balance the one dropped by the
> platform bus code when unbinding the MFD and deregistering the child
> devices.
> 
> Fix this by using the intended helper for reusing OF nodes.
> 
> Fixes: 2dc51ca822e4 ("clk: RK808: Reduce 'struct rk808' usage")
> Cc: stable@vger.kernel.org      # 6.5
> Cc: Sebastian Reichel <sebastian.reichel@collabora.com>
> Signed-off-by: Johan Hovold <johan@kernel.org>
> ---

+Heiko

>  drivers/clk/clk-rk808.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/clk-rk808.c b/drivers/clk/clk-rk808.c
> index f7412b137e5e..5a75b5c91555 100644
> --- a/drivers/clk/clk-rk808.c
> +++ b/drivers/clk/clk-rk808.c
> @@ -153,7 +153,7 @@ static int rk808_clkout_probe(struct platform_device *pdev)
>         struct rk808_clkout *rk808_clkout;
>         int ret;
>  
> -       dev->of_node = pdev->dev.parent->of_node;
> +       device_set_of_node_from_dev(dev, dev->parent);
>  
>         rk808_clkout = devm_kzalloc(dev,
>                                     sizeof(*rk808_clkout), GFP_KERNEL);
> -- 
> 2.52.0
>
Re: [PATCH] clk: rk808: fix OF node reference imbalance
Posted by Heiko Stuebner 1 month, 1 week ago
Am Samstag, 25. April 2026, 20:10:27 Mitteleuropäische Sommerzeit schrieb Stephen Boyd:
> Quoting Johan Hovold (2026-04-07 02:50:27)
> > The driver reuses the OF node of the parent multi-function device but
> > fails to take another reference to balance the one dropped by the
> > platform bus code when unbinding the MFD and deregistering the child
> > devices.
> > 
> > Fix this by using the intended helper for reusing OF nodes.
> > 
> > Fixes: 2dc51ca822e4 ("clk: RK808: Reduce 'struct rk808' usage")
> > Cc: stable@vger.kernel.org      # 6.5
> > Cc: Sebastian Reichel <sebastian.reichel@collabora.com>
> > Signed-off-by: Johan Hovold <johan@kernel.org>
> > ---
> 
> +Heiko

I've looked that up, and that is the right way to go

Reviewed-by: Heiko Stuebner <heiko@sntech.de>

> 
> >  drivers/clk/clk-rk808.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/clk/clk-rk808.c b/drivers/clk/clk-rk808.c
> > index f7412b137e5e..5a75b5c91555 100644
> > --- a/drivers/clk/clk-rk808.c
> > +++ b/drivers/clk/clk-rk808.c
> > @@ -153,7 +153,7 @@ static int rk808_clkout_probe(struct platform_device *pdev)
> >         struct rk808_clkout *rk808_clkout;
> >         int ret;
> >  
> > -       dev->of_node = pdev->dev.parent->of_node;
> > +       device_set_of_node_from_dev(dev, dev->parent);
> >  
> >         rk808_clkout = devm_kzalloc(dev,
> >                                     sizeof(*rk808_clkout), GFP_KERNEL);
> >
> 
Re: [PATCH] clk: rk808: fix OF node reference imbalance
Posted by Heiko Stuebner 1 month, 2 weeks ago
Am Samstag, 25. April 2026, 20:10:27 Mitteleuropäische Sommerzeit schrieb Stephen Boyd:
> Quoting Johan Hovold (2026-04-07 02:50:27)
> > The driver reuses the OF node of the parent multi-function device but
> > fails to take another reference to balance the one dropped by the
> > platform bus code when unbinding the MFD and deregistering the child
> > devices.
> > 
> > Fix this by using the intended helper for reusing OF nodes.
> > 
> > Fixes: 2dc51ca822e4 ("clk: RK808: Reduce 'struct rk808' usage")
> > Cc: stable@vger.kernel.org      # 6.5
> > Cc: Sebastian Reichel <sebastian.reichel@collabora.com>
> > Signed-off-by: Johan Hovold <johan@kernel.org>
> > ---
> 
> +Heiko

Looking at the device_set_of_node_from_dev() function, this is the
right move, so

Reviewed-by: Heiko Stuebner <heiko@sntech.de>


It also seems the rk808-regulator.c might be another candidate for
this, as it also takes the node without of_node_get and manually
setting the of_node_reused flag.


Heiko


> >  drivers/clk/clk-rk808.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/clk/clk-rk808.c b/drivers/clk/clk-rk808.c
> > index f7412b137e5e..5a75b5c91555 100644
> > --- a/drivers/clk/clk-rk808.c
> > +++ b/drivers/clk/clk-rk808.c
> > @@ -153,7 +153,7 @@ static int rk808_clkout_probe(struct platform_device *pdev)
> >         struct rk808_clkout *rk808_clkout;
> >         int ret;
> >  
> > -       dev->of_node = pdev->dev.parent->of_node;
> > +       device_set_of_node_from_dev(dev, dev->parent);
> >  
> >         rk808_clkout = devm_kzalloc(dev,
> >                                     sizeof(*rk808_clkout), GFP_KERNEL);
> >
> 
Re: [PATCH] clk: rk808: fix OF node reference imbalance
Posted by Johan Hovold 1 month, 2 weeks ago
On Mon, Apr 27, 2026 at 01:17:39PM +0200, Heiko Stuebner wrote:

> Looking at the device_set_of_node_from_dev() function, this is the
> right move, so
> 
> Reviewed-by: Heiko Stuebner <heiko@sntech.de>

Thanks for reviewing.

> It also seems the rk808-regulator.c might be another candidate for
> this, as it also takes the node without of_node_get and manually
> setting the of_node_reused flag.

That's fixed in 7.1-rc1:

	65290b24d8a5 ("regulator: rk808: fix OF node reference imbalance")

Johan
Re: [PATCH] clk: rk808: fix OF node reference imbalance
Posted by Heiko Stuebner 1 month, 2 weeks ago
Am Montag, 27. April 2026, 14:03:20 Mitteleuropäische Sommerzeit schrieb Johan Hovold:
> On Mon, Apr 27, 2026 at 01:17:39PM +0200, Heiko Stuebner wrote:
> 
> > Looking at the device_set_of_node_from_dev() function, this is the
> > right move, so
> > 
> > Reviewed-by: Heiko Stuebner <heiko@sntech.de>
> 
> Thanks for reviewing.
> 
> > It also seems the rk808-regulator.c might be another candidate for
> > this, as it also takes the node without of_node_get and manually
> > setting the of_node_reused flag.
> 
> That's fixed in 7.1-rc1:
> 
> 	65290b24d8a5 ("regulator: rk808: fix OF node reference imbalance")

nice ... should've looked there, instead of v7.0 :-)


Heiko
Re: [PATCH] clk: rk808: fix OF node reference imbalance
Posted by Brian Masney 2 months, 1 week ago
On Tue, Apr 07, 2026 at 11:50:27AM +0200, Johan Hovold wrote:
> The driver reuses the OF node of the parent multi-function device but
> fails to take another reference to balance the one dropped by the
> platform bus code when unbinding the MFD and deregistering the child
> devices.
> 
> Fix this by using the intended helper for reusing OF nodes.
> 
> Fixes: 2dc51ca822e4 ("clk: RK808: Reduce 'struct rk808' usage")
> Cc: stable@vger.kernel.org	# 6.5
> Cc: Sebastian Reichel <sebastian.reichel@collabora.com>
> Signed-off-by: Johan Hovold <johan@kernel.org>

Reviewed-by: Brian Masney <bmasney@redhat.com>
Re: [PATCH] clk: rk808: fix OF node reference imbalance
Posted by Sebastian Reichel 2 months, 1 week ago
Hi,

On Tue, Apr 07, 2026 at 11:50:27AM +0200, Johan Hovold wrote:
> The driver reuses the OF node of the parent multi-function device but
> fails to take another reference to balance the one dropped by the
> platform bus code when unbinding the MFD and deregistering the child
> devices.
> 
> Fix this by using the intended helper for reusing OF nodes.
> 
> Fixes: 2dc51ca822e4 ("clk: RK808: Reduce 'struct rk808' usage")
> Cc: stable@vger.kernel.org	# 6.5
> Cc: Sebastian Reichel <sebastian.reichel@collabora.com>
> Signed-off-by: Johan Hovold <johan@kernel.org>
> ---

Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>

Greetings,

-- Sebastian

>  drivers/clk/clk-rk808.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/clk-rk808.c b/drivers/clk/clk-rk808.c
> index f7412b137e5e..5a75b5c91555 100644
> --- a/drivers/clk/clk-rk808.c
> +++ b/drivers/clk/clk-rk808.c
> @@ -153,7 +153,7 @@ static int rk808_clkout_probe(struct platform_device *pdev)
>  	struct rk808_clkout *rk808_clkout;
>  	int ret;
>  
> -	dev->of_node = pdev->dev.parent->of_node;
> +	device_set_of_node_from_dev(dev, dev->parent);
>  
>  	rk808_clkout = devm_kzalloc(dev,
>  				    sizeof(*rk808_clkout), GFP_KERNEL);
> -- 
> 2.52.0
>