diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index e8921871ef9aaa4ff9a8c74359bf49ebe95d8b3e..56892db7de5cc23cf91e43a582aad3390ccf2d5a 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -21,6 +21,7 @@ #include #include +#include /* * If the arch supports passing the variable contents of @@ -340,6 +341,8 @@ struct ftrace_ops { unsigned long direct_call; #endif #endif + KABI_RESERVE(1) + KABI_RESERVE(2) }; extern struct ftrace_ops __rcu *ftrace_ops_list; diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h index cf9f0c61796e1492597e42647feb8207f2dc3e98..172cf91a45de41735e1324de45be0fb70501e632 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -9,6 +9,7 @@ #include #include #include +#include struct trace_array; struct array_buffer; @@ -677,6 +678,8 @@ struct trace_event_file { atomic_t ref; /* ref count for opened files */ atomic_t sm_ref; /* soft-mode reference counter */ atomic_t tm_ref; /* trigger-mode reference counter */ + KABI_RESERVE(1) + KABI_RESERVE(2) }; #define __TRACE_EVENT_FLAGS(name, value) \ diff --git a/include/linux/tracepoint-defs.h b/include/linux/tracepoint-defs.h index 4dc4955f0fbfe6c00f686314ffb96592753479a2..66b4098f7d77f591024f9b2750cb429f7863e75f 100644 --- a/include/linux/tracepoint-defs.h +++ b/include/linux/tracepoint-defs.h @@ -10,6 +10,7 @@ #include #include +#include struct static_call_key; @@ -39,6 +40,8 @@ struct tracepoint { int (*regfunc)(void); void (*unregfunc)(void); struct tracepoint_func __rcu *funcs; + KABI_RESERVE(1) + KABI_RESERVE(2) }; #ifdef CONFIG_HAVE_ARCH_PREL32_RELOCATIONS diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index f1ef4329343bf38057ff3664632af039df720903..e70aa61539dc7f7ca6e6d7e4d26b9283db7f3021 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -28,6 +28,7 @@ #include #include +#include /* * The "absolute" timestamp in the buffer is only 59 bits. @@ -537,6 +538,9 @@ struct ring_buffer_per_cpu { struct completion update_done; struct rb_irq_work irq_work; + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) }; struct trace_buffer { @@ -571,6 +575,9 @@ struct ring_buffer_iter { u64 page_stamp; struct ring_buffer_event *event; int missed_events; + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) }; #ifdef RB_TIME_32 diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index 52123df262b2eed3206e8ef1c4c857cd17f5f3c6..8eebd99cbb899546a489bb103483dcef2650345e 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -21,6 +21,7 @@ #include #include #include +#include #include "pid_list.h" @@ -410,6 +411,9 @@ struct trace_array { struct cond_snapshot *cond_snapshot; #endif struct trace_func_repeats __percpu *last_func_repeats; + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) }; enum { @@ -1326,6 +1330,8 @@ struct ftrace_event_field { int size; int is_signed; int len; + KABI_RESERVE(1) + KABI_RESERVE(2) }; struct prog_entry;