|
@@ -157,6 +157,7 @@ __kprobes void *perf_trace_buf_prepare(int size, unsigned short type,
|
|
|
struct pt_regs *regs, int *rctxp)
|
|
|
{
|
|
|
struct trace_entry *entry;
|
|
|
+ unsigned long flags;
|
|
|
char *raw_data;
|
|
|
int pc;
|
|
|
|
|
@@ -174,7 +175,8 @@ __kprobes void *perf_trace_buf_prepare(int size, unsigned short type,
|
|
|
memset(&raw_data[size - sizeof(u64)], 0, sizeof(u64));
|
|
|
|
|
|
entry = (struct trace_entry *)raw_data;
|
|
|
- tracing_generic_entry_update(entry, regs->flags, pc);
|
|
|
+ local_save_flags(flags);
|
|
|
+ tracing_generic_entry_update(entry, flags, pc);
|
|
|
entry->type = type;
|
|
|
|
|
|
return raw_data;
|