From 38dccacd2b37382159af86bbab284a46a3fc6284 Mon Sep 17 00:00:00 2001 From: Neil Leeder Date: Fri, 20 Nov 2015 14:45:09 -0500 Subject: [PATCH] perf: replace cpu_up/down with device_online/offline The cpu_up/down calls do not update userspace cpu online information accurately. Use the device_on/offline API to correct this. Change-Id: I97ab55f4f917bd9cbb31dd89785eecdbe4d2f9ca Signed-off-by: Neil Leeder [satyap: merge conflict resolution and move changes in arch/arm64/kernel/perf_event.c to drivers/perf/arm_pmu.c to align with kernel 4.4] Signed-off-by: Satya Durga Srinivasu Prabhala --- drivers/perf/arm_pmu.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c index 9795842e700a..e49904c2c540 100644 --- a/drivers/perf/arm_pmu.c +++ b/drivers/perf/arm_pmu.c @@ -1164,7 +1164,9 @@ static __ref void reset_pmu_force(void) for_each_possible_cpu(cpu) { if (!cpu_online(cpu)) { save_online_mask |= BIT(cpu); - ret = cpu_up(cpu); + lock_device_hotplug(); + ret = device_online(get_cpu_device(cpu)); + unlock_device_hotplug(); if (ret) pr_err("Failed to bring up CPU: %d, ret: %d\n", cpu, ret); @@ -1176,7 +1178,9 @@ static __ref void reset_pmu_force(void) armpmu_release_hardware(cpu_pmu); for_each_possible_cpu(cpu) { if ((save_online_mask & BIT(cpu)) && cpu_online(cpu)) { - ret = cpu_down(cpu); + lock_device_hotplug(); + ret = device_online(get_cpu_device(cpu)); + unlock_device_hotplug(); if (ret) pr_err("Failed to bring down CPU: %d, ret: %d\n", cpu, ret);