LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] perf/rapl: fix crash in rapl_scale()
@ 2015-01-22 20:38 Stephane Eranian
  2015-01-23  8:39 ` Peter Zijlstra
  2015-01-28 14:29 ` [tip:perf/urgent] perf/rapl: Fix " tip-bot for Stephane Eranian
  0 siblings, 2 replies; 3+ messages in thread
From: Stephane Eranian @ 2015-01-22 20:38 UTC (permalink / raw)
  To: linux-kernel; +Cc: peterz, mingo, vincent.weaver, cl, paulus, acme


This patch fixes a systematic crash in rapl_scale()
due to an invalid pointer.

The bug was introduced by commit:
commit 89cbc76768c2fa4ed95545bf961f3a14ddfeed21
Author: Christoph Lameter <cl@linux.com>
Date:   Sun Aug 17 12:30:40 2014 -0500

    x86: Replace __get_cpu_var uses


The fix is simple. Just put the parenthesis where it needs
to be, i.e., around rapl_pmu. To my surprise, the compiler
was not complaining about passing an integer instead of a
pointer.

Reported-by: Vince Weaver <vincent.weaver@maine.edu>
Signed-off-by: Stephane Eranian <eranian@google.com>
Tested-by: Vince Weaver <vincent.weaver@maine.edu>
--

diff --git a/arch/x86/kernel/cpu/perf_event_intel_rapl.c b/arch/x86/kernel/cpu/perf_event_intel_rapl.c
index 6e434f8..c4bb8b8 100644
--- a/arch/x86/kernel/cpu/perf_event_intel_rapl.c
+++ b/arch/x86/kernel/cpu/perf_event_intel_rapl.c
@@ -142,7 +142,7 @@ static inline u64 rapl_scale(u64 v)
 	 * or use ldexp(count, -32).
 	 * Watts = Joules/Time delta
 	 */
-	return v << (32 - __this_cpu_read(rapl_pmu->hw_unit));
+	return v << (32 - __this_cpu_read(rapl_pmu)->hw_unit);
 }
 
 static u64 rapl_event_update(struct perf_event *event)

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-01-28 21:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-22 20:38 [PATCH] perf/rapl: fix crash in rapl_scale() Stephane Eranian
2015-01-23  8:39 ` Peter Zijlstra
2015-01-28 14:29 ` [tip:perf/urgent] perf/rapl: Fix " tip-bot for Stephane Eranian

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).