summaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_event_perf.c
diff options
context:
space:
mode:
authorVince Weaver <vincent.weaver@maine.edu>2013-11-15 12:39:45 -0500
committerIngo Molnar <mingo@kernel.org>2013-11-19 16:57:44 +0100
commit0022cedd4a7d8a87841351e2b018bb6794cf2e67 (patch)
treed52f5e595e33ed3df04acf750f3f1efe45b40d89 /kernel/trace/trace_event_perf.c
parent06db0b21712f878b808480ef31097637013bbf0f (diff)
downloadlinux-0022cedd4a7d8a87841351e2b018bb6794cf2e67.tar.gz
linux-0022cedd4a7d8a87841351e2b018bb6794cf2e67.tar.bz2
linux-0022cedd4a7d8a87841351e2b018bb6794cf2e67.zip
perf/trace: Properly use u64 to hold event_id
The 64-bit attr.config value for perf trace events was being copied into an "int" before doing a comparison, meaning the top 32 bits were being truncated. As far as I can tell this didn't cause any errors, but it did mean it was possible to create valid aliases for all the tracepoint ids which I don't think was intended. (For example, 0xffffffff00000018 and 0x18 both enable the same tracepoint). Signed-off-by: Vince Weaver <vincent.weaver@maine.edu> Signed-off-by: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1311151236100.11932@vincent-weaver-1.um.maine.edu Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/trace/trace_event_perf.c')
-rw-r--r--kernel/trace/trace_event_perf.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/trace/trace_event_perf.c b/kernel/trace/trace_event_perf.c
index 630889f68b1d..e854f420e033 100644
--- a/kernel/trace/trace_event_perf.c
+++ b/kernel/trace/trace_event_perf.c
@@ -179,7 +179,7 @@ static int perf_trace_event_init(struct ftrace_event_call *tp_event,
int perf_trace_init(struct perf_event *p_event)
{
struct ftrace_event_call *tp_event;
- int event_id = p_event->attr.config;
+ u64 event_id = p_event->attr.config;
int ret = -EINVAL;
mutex_lock(&event_mutex);