diff options
| -rw-r--r-- | include/trace/ftrace.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 7167b9b97da2..a05524fa245d 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h | |||
| @@ -637,7 +637,12 @@ __attribute__((section("_ftrace_events"))) event_##call = { \ | |||
| 637 | * pc = preempt_count(); | 637 | * pc = preempt_count(); |
| 638 | * | 638 | * |
| 639 | * __data_size = ftrace_get_offsets_<call>(&__data_offsets, args); | 639 | * __data_size = ftrace_get_offsets_<call>(&__data_offsets, args); |
| 640 | * __entry_size = __data_size + sizeof(*entry); | 640 | * |
| 641 | * // Below we want to get the aligned size by taking into account | ||
| 642 | * // the u32 field that will later store the buffer size | ||
| 643 | * __entry_size = ALIGN(__data_size + sizeof(*entry) + sizeof(u32), | ||
| 644 | * sizeof(u64)); | ||
| 645 | * __entry_size -= sizeof(u32); | ||
| 641 | * | 646 | * |
| 642 | * do { | 647 | * do { |
| 643 | * char raw_data[__entry_size]; <- allocate our sample in the stack | 648 | * char raw_data[__entry_size]; <- allocate our sample in the stack |
| @@ -687,6 +692,7 @@ static void ftrace_profile_##call(proto) \ | |||
| 687 | __data_size = ftrace_get_offsets_##call(&__data_offsets, args); \ | 692 | __data_size = ftrace_get_offsets_##call(&__data_offsets, args); \ |
| 688 | __entry_size = ALIGN(__data_size + sizeof(*entry) + sizeof(u32),\ | 693 | __entry_size = ALIGN(__data_size + sizeof(*entry) + sizeof(u32),\ |
| 689 | sizeof(u64)); \ | 694 | sizeof(u64)); \ |
| 695 | __entry_size -= sizeof(u32); \ | ||
| 690 | \ | 696 | \ |
| 691 | do { \ | 697 | do { \ |
| 692 | char raw_data[__entry_size]; \ | 698 | char raw_data[__entry_size]; \ |
