On 12-12-25, 13:29, Miaoqian Lin wrote:
> of_cpu_device_node_get obtain a reference to the device node which
> must be released with of_node_put().
> 
> Add missing of_node_put() on error paths to fix.
> 
> Found via static analysis and code review.
> 
> Fixes: 760287ab90a3 ("cpufreq: pmac64-cpufreq: remove device tree parsing for 
> cpu nodes")
> Fixes: 4350147a816b ("[PATCH] ppc64: SMU based macs cpufreq support")
> Cc: [email protected]
> Signed-off-by: Miaoqian Lin <[email protected]>
> ---
>  drivers/cpufreq/pmac64-cpufreq.c | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/cpufreq/pmac64-cpufreq.c 
> b/drivers/cpufreq/pmac64-cpufreq.c
> index 80897ec8f00e..0e0205b888ba 100644
> --- a/drivers/cpufreq/pmac64-cpufreq.c
> +++ b/drivers/cpufreq/pmac64-cpufreq.c
> @@ -356,8 +356,10 @@ static int __init g5_neo2_cpufreq_init(struct 
> device_node *cpunode)
>               use_volts_smu = 1;
>       else if (of_machine_is_compatible("PowerMac11,2"))
>               use_volts_vdnap = 1;
> -     else
> -             return -ENODEV;
> +     else {
> +             rc = -ENODEV;
> +             goto bail_noprops;
> +     }
>  
>       /* Check 970FX for now */
>       valp = of_get_property(cpunode, "cpu-version", NULL);
> @@ -430,8 +432,11 @@ static int __init g5_neo2_cpufreq_init(struct 
> device_node *cpunode)
>        * supporting anything else.
>        */
>       valp = of_get_property(cpunode, "clock-frequency", NULL);
> -     if (!valp)
> -             return -ENODEV;
> +     if (!valp) {
> +             rc = -ENODEV;
> +             goto bail_noprops;
> +     }
> +
>       max_freq = (*valp)/1000;
>       g5_cpu_freqs[0].frequency = max_freq;
>       g5_cpu_freqs[1].frequency = max_freq/2;

I would rather handle this in the function that gets the reference of the node
in the first place: g5_cpufreq_init().

-- 
viresh

Reply via email to