|
@@ -667,6 +667,12 @@ perf_trace_##call(void *__data, proto) \
|
|
|
int rctx; \
|
|
|
\
|
|
|
__data_size = ftrace_get_offsets_##call(&__data_offsets, args); \
|
|
|
+ \
|
|
|
+ head = this_cpu_ptr(event_call->perf_events); \
|
|
|
+ if (__builtin_constant_p(!__task) && !__task && \
|
|
|
+ hlist_empty(head)) \
|
|
|
+ return; \
|
|
|
+ \
|
|
|
__entry_size = ALIGN(__data_size + sizeof(*entry) + sizeof(u32),\
|
|
|
sizeof(u64)); \
|
|
|
__entry_size -= sizeof(u32); \
|
|
@@ -681,7 +687,6 @@ perf_trace_##call(void *__data, proto) \
|
|
|
\
|
|
|
{ assign; } \
|
|
|
\
|
|
|
- head = this_cpu_ptr(event_call->perf_events); \
|
|
|
perf_trace_buf_submit(entry, __entry_size, rctx, __addr, \
|
|
|
__count, &__regs, head, __task); \
|
|
|
}
|