[PATCH 1/2] perf: arm_dsu: Fix hotplug callback leak in dsu_pmu_init()
Suzuki K Poulose
suzuki.poulose at arm.com
Tue Nov 15 03:44:03 PST 2022
On 15/11/2022 07:02, Yuan Can wrote:
> dsu_pmu_init() won't remove the callback added by cpuhp_setup_state_multi()
> when platform_driver_register() failed. Remove the callback by
> cpuhp_remove_multi_state() in fail path.
>
> Similar to the handling of arm_ccn_init() in commit 26242b330093 ("bus:
> arm-ccn: Prevent hotplug callback leak")
>
> Fixes: 7520fa99246d ("perf: ARM DynamIQ Shared Unit PMU support")
> Signed-off-by: Yuan Can <yuancan at huawei.com>
Acked-by: Suzuki K Poulose <suzuki.poulose at arm.com>
> ---
> drivers/perf/arm_dsu_pmu.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/perf/arm_dsu_pmu.c b/drivers/perf/arm_dsu_pmu.c
> index 4a15c86f45ef..fe2abb412c00 100644
> --- a/drivers/perf/arm_dsu_pmu.c
> +++ b/drivers/perf/arm_dsu_pmu.c
> @@ -858,7 +858,11 @@ static int __init dsu_pmu_init(void)
> if (ret < 0)
> return ret;
> dsu_pmu_cpuhp_state = ret;
> - return platform_driver_register(&dsu_pmu_driver);
> + ret = platform_driver_register(&dsu_pmu_driver);
> + if (ret)
> + cpuhp_remove_multi_state(dsu_pmu_cpuhp_state);
> +
> + return ret;
> }
>
> static void __exit dsu_pmu_exit(void)
More information about the linux-arm-kernel
mailing list