All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
To: Linmao Li <lilinmao@kylinos.cn>,
	 Sakari Ailus <sakari.ailus@linux.intel.com>,
	Hans Verkuil <hverkuil+cisco@kernel.org>
Cc: "Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Geert Uytterhoeven" <geert+renesas@glider.be>,
	"Magnus Damm" <magnus.damm@gmail.com>,
	"Jacopo Mondi" <jacopo.mondi+renesas@ideasonboard.com>,
	"Sakari Ailus" <sakari.ailus@linux.intel.com>,
	linux-media@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/2] media: rcar-isp: Fix VSPX reference leaks
Date: Thu, 6 Aug 2026 11:33:50 +0200	[thread overview]
Message-ID: <anRUpYHq3uEl462H@zed> (raw)
In-Reply-To: <20260804102431.273385-3-lilinmao@kylinos.cn>

Hello Linmao Li

On Tue, Aug 04, 2026 at 06:24:31PM +0800, Linmao Li wrote:
> of_parse_phandle() and of_find_device_by_node() both acquire references,
> but the ISPCORE probe never releases them. The device node reference is
> leaked immediately, and the VSPX device reference is leaked on probe
> failures and on driver removal.
>
> Drop the node reference once the platform device has been looked up, and
> release the device reference on the probe error paths and in the remove
> path.
>
> Signed-off-by: Linmao Li <lilinmao@kylinos.cn>

Thanks, looks good to me!

Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>

Sakari, Hans, should we collect these two patches as fixes for 7.3 ?


> ---
>  drivers/media/platform/renesas/rcar-isp/core.c | 17 +++++++++++++----
>  1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/media/platform/renesas/rcar-isp/core.c b/drivers/media/platform/renesas/rcar-isp/core.c
> index 181446ae53779..b5861d0cd0e8b 100644
> --- a/drivers/media/platform/renesas/rcar-isp/core.c
> +++ b/drivers/media/platform/renesas/rcar-isp/core.c
> @@ -820,6 +820,7 @@ static int risp_core_probe_resources(struct rcar_isp_core *core,
>  		return -ENODEV;
>
>  	vspx = of_find_device_by_node(of_vspx);
> +	of_node_put(of_vspx);
>  	if (!vspx)
>  		return -ENODEV;
>
> @@ -828,7 +829,7 @@ static int risp_core_probe_resources(struct rcar_isp_core *core,
>
>  	ret = vsp1_isp_init(&vspx->dev);
>  	if (ret < 0)
> -		return ret;
> +		goto err_put_vspx;
>
>  	/* Attach to the RPP library
>  	 *
> @@ -839,7 +840,7 @@ static int risp_core_probe_resources(struct rcar_isp_core *core,
>  	 */
>  	ret = clk_prepare_enable(core->clk);
>  	if (ret)
> -		return ret;
> +		goto err_put_vspx;
>
>  	usleep_range(2000, 4000);
>
> @@ -847,10 +848,16 @@ static int risp_core_probe_resources(struct rcar_isp_core *core,
>
>  	clk_disable_unprepare(core->clk);
>
> -	if (!core->rpp)
> -		return -ENODEV;
> +	if (!core->rpp) {
> +		ret = -ENODEV;
> +		goto err_put_vspx;
> +	}
>
>  	return 0;
> +
> +err_put_vspx:
> +	put_device(&vspx->dev);
> +	return ret;
>  }
>
>  int risp_core_probe(struct rcar_isp_core *core, struct platform_device *pdev,
> @@ -886,6 +893,7 @@ int risp_core_probe(struct rcar_isp_core *core, struct platform_device *pdev,
>  	v4l2_device_unregister(&core->v4l2_dev);
>  err_destroy_rpp:
>  	rppx1_destroy(core->rpp);
> +	put_device(core->vspx.dev);
>  	return ret;
>  }
>
> @@ -904,4 +912,5 @@ void risp_core_remove(struct rcar_isp_core *core)
>
>  	mutex_destroy(&core->io_lock);
>  	rppx1_destroy(core->rpp);
> +	put_device(core->vspx.dev);
>  }
> --
> 2.25.1
>
>

  reply	other threads:[~2026-08-06  9:33 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-04 10:24 [PATCH v2 0/2] media: rcar-isp: Fix ISPCORE resource leaks Linmao Li
2026-08-04 10:24 ` [PATCH v2 1/2] media: rcar-isp: Release ISPCORE resources Linmao Li
2026-08-04 10:24 ` [PATCH v2 2/2] media: rcar-isp: Fix VSPX reference leaks Linmao Li
2026-08-06  9:33   ` Jacopo Mondi [this message]
2026-08-06 10:28     ` Sakari Ailus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=anRUpYHq3uEl462H@zed \
    --to=jacopo.mondi@ideasonboard.com \
    --cc=geert+renesas@glider.be \
    --cc=hverkuil+cisco@kernel.org \
    --cc=jacopo.mondi+renesas@ideasonboard.com \
    --cc=lilinmao@kylinos.cn \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=niklas.soderlund@ragnatech.se \
    --cc=sakari.ailus@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.