diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index b21986839b9fb20c2f3ba9c422aac7b3961e9a85..ee2f94222863c44de15aeea2d64a4ef394c5ede8 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2643,7 +2643,8 @@ static void __ftrace_trace_stack(struct ring_buffer *buffer, size *= sizeof(unsigned long); event = __trace_buffer_lock_reserve(buffer, TRACE_STACK, - sizeof(*entry) + size, flags, pc); + (sizeof(*entry) - sizeof(entry->caller)) + size, + flags, pc); if (!event) goto out; entry = ring_buffer_event_data(event);