diff mbox

powerpc/perf: Fix usage of nest_imc_refc

Message ID 1502900494-10010-1-git-send-email-maddy@linux.vnet.ibm.com (mailing list archive)
State Accepted
Commit 711bd207a233141308d0aea0d2e286ee6b4b23cd
Headers show

Commit Message

maddy Aug. 16, 2017, 4:21 p.m. UTC
nest_imc_refc is a reference count struct,
used to track number of active perf sessions
using the nest units.

It is preferred to access nest_imc_refc using
per-cpu pointer 'local_nest_imc_refc'. Since,
nest_imc_refc is not initialized using node_id
as array index. Patch to fix the same.

Fixes: 885dcd709ba91 ('powerpc/perf: Add nest IMC PMU support')
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
---
 arch/powerpc/perf/imc-pmu.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Michael Ellerman Aug. 18, 2017, 12:51 p.m. UTC | #1
On Wed, 2017-08-16 at 16:21:34 UTC, Madhavan Srinivasan wrote:
> nest_imc_refc is a reference count struct,
> used to track number of active perf sessions
> using the nest units.
> 
> It is preferred to access nest_imc_refc using
> per-cpu pointer 'local_nest_imc_refc'. Since,
> nest_imc_refc is not initialized using node_id
> as array index. Patch to fix the same.
> 
> Fixes: 885dcd709ba91 ('powerpc/perf: Add nest IMC PMU support')
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/711bd207a233141308d0aea0d2e286

cheers
diff mbox

Patch

diff --git a/arch/powerpc/perf/imc-pmu.c b/arch/powerpc/perf/imc-pmu.c
index a8f95f96d54b..9ccac86f3463 100644
--- a/arch/powerpc/perf/imc-pmu.c
+++ b/arch/powerpc/perf/imc-pmu.c
@@ -404,7 +404,7 @@  static void nest_imc_counters_release(struct perf_event *event)
 		rc = opal_imc_counters_stop(OPAL_IMC_COUNTERS_NEST,
 					    get_hard_smp_processor_id(event->cpu));
 		if (rc) {
-			mutex_unlock(&nest_imc_refc[node_id].lock);
+			mutex_unlock(&ref->lock);
 			pr_err("nest-imc: Unable to stop the counters for core %d\n", node_id);
 			return;
 		}
@@ -487,7 +487,7 @@  static int nest_imc_event_init(struct perf_event *event)
 		rc = opal_imc_counters_start(OPAL_IMC_COUNTERS_NEST,
 					     get_hard_smp_processor_id(event->cpu));
 		if (rc) {
-			mutex_unlock(&nest_imc_refc[node_id].lock);
+			mutex_unlock(&ref->lock);
 			pr_err("nest-imc: Unable to start the counters for node %d\n",
 									node_id);
 			return rc;