[PATCH] perf/arm_cspmu: fix device leaks on module unload

Will Deacon will at kernel.org
Mon Nov 24 08:03:29 PST 2025


On Fri, Nov 21, 2025 at 12:52:13PM +0100, Johan Hovold wrote:
> Make sure to drop the references taken when looking up the backend
> devices during vendor module unload.
> 
> Fixes: bfc653aa89cb ("perf: arm_cspmu: Separate Arm and vendor module")
> Cc: stable at vger.kernel.org	# 6.7
> Cc: Besar Wicaksono <bwicaksono at nvidia.com>
> Signed-off-by: Johan Hovold <johan at kernel.org>
> ---
>  drivers/perf/arm_cspmu/arm_cspmu.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
> index efa9b229e701..e0d4293f06f9 100644
> --- a/drivers/perf/arm_cspmu/arm_cspmu.c
> +++ b/drivers/perf/arm_cspmu/arm_cspmu.c
> @@ -1365,8 +1365,10 @@ void arm_cspmu_impl_unregister(const struct arm_cspmu_impl_match *impl_match)
>  
>  	/* Unbind the driver from all matching backend devices. */
>  	while ((dev = driver_find_device(&arm_cspmu_driver.driver, NULL,
> -			match, arm_cspmu_match_device)))
> +			match, arm_cspmu_match_device))) {
>  		device_release_driver(dev);
> +		put_device(dev);
> +	}

There's already a fix queued for this; please take a look:

https://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git/commit/?h=for-next/perf&id=970e1e41805f0bd49dc234330a9390f4708d097d

Wil



More information about the linux-arm-kernel mailing list