git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux...
[pandora-kernel.git]
/
kernel
/
trace
/
trace_syscalls.c
diff --git
a/kernel/trace/trace_syscalls.c
b/kernel/trace/trace_syscalls.c
index
9d35830
..
d2c859c
100644
(file)
--- a/
kernel/trace/trace_syscalls.c
+++ b/
kernel/trace/trace_syscalls.c
@@
-488,7
+488,7
@@
static void perf_syscall_enter(void *ignore, struct pt_regs *regs, long id)
{
struct syscall_metadata *sys_data;
struct syscall_trace_enter *rec;
{
struct syscall_metadata *sys_data;
struct syscall_trace_enter *rec;
-
unsigned long flags
;
+
struct hlist_head *head
;
int syscall_nr;
int rctx;
int size;
int syscall_nr;
int rctx;
int size;
@@
-511,15
+511,16
@@
static void perf_syscall_enter(void *ignore, struct pt_regs *regs, long id)
return;
rec = (struct syscall_trace_enter *)perf_trace_buf_prepare(size,
return;
rec = (struct syscall_trace_enter *)perf_trace_buf_prepare(size,
- sys_data->enter_event->event.type,
- &rctx, &flags);
+ sys_data->enter_event->event.type, regs, &rctx);
if (!rec)
return;
rec->nr = syscall_nr;
syscall_get_arguments(current, regs, 0, sys_data->nb_args,
(unsigned long *)&rec->args);
if (!rec)
return;
rec->nr = syscall_nr;
syscall_get_arguments(current, regs, 0, sys_data->nb_args,
(unsigned long *)&rec->args);
- perf_trace_buf_submit(rec, size, rctx, 0, 1, flags, regs);
+
+ head = per_cpu_ptr(sys_data->enter_event->perf_events, smp_processor_id());
+ perf_trace_buf_submit(rec, size, rctx, 0, 1, regs, head);
}
int perf_sysenter_enable(struct ftrace_event_call *call)
}
int perf_sysenter_enable(struct ftrace_event_call *call)
@@
-561,7
+562,7
@@
static void perf_syscall_exit(void *ignore, struct pt_regs *regs, long ret)
{
struct syscall_metadata *sys_data;
struct syscall_trace_exit *rec;
{
struct syscall_metadata *sys_data;
struct syscall_trace_exit *rec;
-
unsigned long flags
;
+
struct hlist_head *head
;
int syscall_nr;
int rctx;
int size;
int syscall_nr;
int rctx;
int size;
@@
-587,15
+588,15
@@
static void perf_syscall_exit(void *ignore, struct pt_regs *regs, long ret)
return;
rec = (struct syscall_trace_exit *)perf_trace_buf_prepare(size,
return;
rec = (struct syscall_trace_exit *)perf_trace_buf_prepare(size,
- sys_data->exit_event->event.type,
- &rctx, &flags);
+ sys_data->exit_event->event.type, regs, &rctx);
if (!rec)
return;
rec->nr = syscall_nr;
rec->ret = syscall_get_return_value(current, regs);
if (!rec)
return;
rec->nr = syscall_nr;
rec->ret = syscall_get_return_value(current, regs);
- perf_trace_buf_submit(rec, size, rctx, 0, 1, flags, regs);
+ head = per_cpu_ptr(sys_data->exit_event->perf_events, smp_processor_id());
+ perf_trace_buf_submit(rec, size, rctx, 0, 1, regs, head);
}
int perf_sysexit_enable(struct ftrace_event_call *call)
}
int perf_sysexit_enable(struct ftrace_event_call *call)