diff mbox series

mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start

Message ID 20220701124112.237902-1-windhl@126.com (mailing list archive)
State Accepted
Commit 7a9f743ceead60ed454c46fbc3085ee9a79cbebb
Headers show
Series mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start | expand

Commit Message

Liang He July 1, 2022, 12:41 p.m. UTC
We should call of_node_put() for the reference 'uctl_node' returned by
of_get_parent() which will increase the refcount. Otherwise, there will
be a refcount leak bug.

Signed-off-by: Liang He <windhl@126.com>
---
 arch/mips/cavium-octeon/octeon-platform.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Thomas Bogendoerfer July 5, 2022, 10:20 a.m. UTC | #1
On Fri, Jul 01, 2022 at 08:41:12PM +0800, Liang He wrote:
> We should call of_node_put() for the reference 'uctl_node' returned by
> of_get_parent() which will increase the refcount. Otherwise, there will
> be a refcount leak bug.
> 
> Signed-off-by: Liang He <windhl@126.com>
> ---
>  arch/mips/cavium-octeon/octeon-platform.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/mips/cavium-octeon/octeon-platform.c b/arch/mips/cavium-octeon/octeon-platform.c
> index a994022e32c9..ce05c0dd3acd 100644
> --- a/arch/mips/cavium-octeon/octeon-platform.c
> +++ b/arch/mips/cavium-octeon/octeon-platform.c
> @@ -86,11 +86,12 @@ static void octeon2_usb_clocks_start(struct device *dev)
>  					 "refclk-frequency", &clock_rate);
>  		if (i) {
>  			dev_err(dev, "No UCTL \"refclk-frequency\"\n");
> +			of_node_put(uctl_node);
>  			goto exit;
>  		}
>  		i = of_property_read_string(uctl_node,
>  					    "refclk-type", &clock_type);
> -
> +		of_node_put(uctl_node);
>  		if (!i && strcmp("crystal", clock_type) == 0)
>  			is_crystal_clock = true;
>  	}
> -- 
> 2.25.1

applied to mips-next.

Thomas.
diff mbox series

Patch

diff --git a/arch/mips/cavium-octeon/octeon-platform.c b/arch/mips/cavium-octeon/octeon-platform.c
index a994022e32c9..ce05c0dd3acd 100644
--- a/arch/mips/cavium-octeon/octeon-platform.c
+++ b/arch/mips/cavium-octeon/octeon-platform.c
@@ -86,11 +86,12 @@  static void octeon2_usb_clocks_start(struct device *dev)
 					 "refclk-frequency", &clock_rate);
 		if (i) {
 			dev_err(dev, "No UCTL \"refclk-frequency\"\n");
+			of_node_put(uctl_node);
 			goto exit;
 		}
 		i = of_property_read_string(uctl_node,
 					    "refclk-type", &clock_type);
-
+		of_node_put(uctl_node);
 		if (!i && strcmp("crystal", clock_type) == 0)
 			is_crystal_clock = true;
 	}