lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <da01677e-8a53-060a-f5ff-075106696c46@baylibre.com>
Date:   Tue, 5 Jul 2022 09:22:22 +0200
From:   Neil Armstrong <narmstrong@...libre.com>
To:     Liang He <windhl@....com>, khilman@...libre.com,
        jbrunet@...libre.com, martin.blumenstingl@...glemail.com,
        inux-amlogic@...ts.infradead.org
Cc:     "open list:ARM/Amlogic Meson..." <linux-amlogic@...ts.infradead.org>,
        "linux-arm-kernel@...ts.infradead.org" 
        <linux-arm-kernel@...ts.infradead.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] soc: amlogic: meson-pwrc: Hold reference returned by
 of_get_parent()

+ linux-amlogic, linux-arm-kernel, linux-kernel

On 05/07/2022 04:20, Liang He wrote:
> We should hold the reference returned by of_get_parent() and use
> it to call of_node_put() for refcount balance.
> 
> Signed-off-by: Liang He <windhl@....com>
> ---
>   drivers/soc/amlogic/meson-ee-pwrc.c     | 5 ++++-
>   drivers/soc/amlogic/meson-gx-pwrc-vpu.c | 5 ++++-
>   2 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/soc/amlogic/meson-ee-pwrc.c b/drivers/soc/amlogic/meson-ee-pwrc.c
> index 2be3afe6c2e3..872ab8ba90bc 100644
> --- a/drivers/soc/amlogic/meson-ee-pwrc.c
> +++ b/drivers/soc/amlogic/meson-ee-pwrc.c
> @@ -470,6 +470,7 @@ static int meson_ee_pwrc_probe(struct platform_device *pdev)
>   	const struct meson_ee_pwrc_domain_data *match;
>   	struct regmap *regmap_ao, *regmap_hhi;
>   	struct meson_ee_pwrc *pwrc;
> +	struct device_node *np;
>   	int i, ret;
>   
>   	match = of_device_get_match_data(&pdev->dev);
> @@ -495,7 +496,9 @@ static int meson_ee_pwrc_probe(struct platform_device *pdev)
>   
>   	pwrc->xlate.num_domains = match->count;
>   
> -	regmap_hhi = syscon_node_to_regmap(of_get_parent(pdev->dev.of_node));
> +	np = of_get_parent(pdev->dev.of_node);
> +	regmap_hhi = syscon_node_to_regmap(np);
> +	of_node_put(np);
>   	if (IS_ERR(regmap_hhi)) {
>   		dev_err(&pdev->dev, "failed to get HHI regmap\n");
>   		return PTR_ERR(regmap_hhi);
> diff --git a/drivers/soc/amlogic/meson-gx-pwrc-vpu.c b/drivers/soc/amlogic/meson-gx-pwrc-vpu.c
> index b4615b288625..75a4e1cec416 100644
> --- a/drivers/soc/amlogic/meson-gx-pwrc-vpu.c
> +++ b/drivers/soc/amlogic/meson-gx-pwrc-vpu.c
> @@ -274,6 +274,7 @@ static int meson_gx_pwrc_vpu_probe(struct platform_device *pdev)
>   	struct regmap *regmap_ao, *regmap_hhi;
>   	struct meson_gx_pwrc_vpu *vpu_pd;
>   	struct reset_control *rstc;
> +	struct device_node *np;
>   	struct clk *vpu_clk;
>   	struct clk *vapb_clk;
>   	bool powered_off;
> @@ -291,7 +292,9 @@ static int meson_gx_pwrc_vpu_probe(struct platform_device *pdev)
>   
>   	memcpy(vpu_pd, vpu_pd_match, sizeof(*vpu_pd));
>   
> -	regmap_ao = syscon_node_to_regmap(of_get_parent(pdev->dev.of_node));
> +	np = of_get_parent(pdev->dev.of_node);
> +	regmap_ao = syscon_node_to_regmap(np);
> +	of_node_put(np);
>   	if (IS_ERR(regmap_ao)) {
>   		dev_err(&pdev->dev, "failed to get regmap\n");
>   		return PTR_ERR(regmap_ao);

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ