perf/imx_ddr: Fix cpu hotplug state cleanup
authorLeonard Crestez <leonard.crestez@nxp.com>
Tue, 14 Jan 2020 20:25:46 +0000 (22:25 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Feb 2020 07:36:49 +0000 (08:36 +0100)
commit9112d1ef5a1b8e1f4b47a9926fa7abd8274c50ab
treeadb485abefa83673b24e6a0a7d9d594180ac73ae
parent994b203b619d5579896c927a21137aef63ddf874
perf/imx_ddr: Fix cpu hotplug state cleanup

[ Upstream commit 9ee68b314e9aa63ed11b98beb8a68810b8234dcf ]

This driver allocates a dynamic cpu hotplug state but never releases it.
If reloaded in a loop it will quickly trigger a WARN message:

"No more dynamic states available for CPU hotplug"

Fix by calling cpuhp_remove_multi_state on remove like several other
perf pmu drivers.

Also fix the cleanup logic on probe error paths: add the missing
cpuhp_remove_multi_state call and properly check the return value from
cpuhp_state_add_instant_nocalls.

Fixes: 9a66d36cc7ac ("drivers/perf: imx_ddr: Add DDR performance counter support to perf")
Acked-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/perf/fsl_imx8_ddr_perf.c