[for-linus][PATCH 0/5] tracing: Some more fixes for 6.5

From: Steven Rostedt
Date: Wed Jul 12 2023 - 18:01:08 EST


Tracing fixes for 6.5:

- Update to fix of prototypes (my merge of Arnd's patch caused another
warning).

- Add selftest to struct sizes for user events

- Quiet false positive of FORTIFY_SOURCE
Due to backward compatibilty, the structure used to save stack traces
in the kernel had a fixed size of 8. This structure is exported to
user space via the tracing format file. A change was made to allow
more than 8 functions to be recorded, and user space now uses the
size field to know how many functions are actually in the stack.
But the structure still has size of 8 (even though it points into
the ring buffer that has the required amount allocated to hold a
full stack. This was fine until the fortifier noticed that the
memcpy(&entry->caller, stack, size) was greater than the 8 functions
and would complain at runtime about it. Hide this by using a pointer
to the stack location on the ring buffer instead of using the address
of the entry structure caller field.

- Fix a deadloop in reading trace_pipe that was caused by a mismatch
between ring_buffer_empty() returning false which then asked to
read the data, but the read code uses rb_num_of_entries() that
returned zero, and causing a infinite "retry".

- Fix a warning caused by not using all pages allocated to store
ftrace functions, where this can happen if the linker inserts a bunch of
"NULL" entries, causing the accounting of how many pages needed
to be off.

git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
trace/urgent

Head SHA1: bec3c25c247c4f88a33d79675a09e1644c9a3114


Arnd Bergmann (1):
tracing: arm64: Avoid missing-prototype warnings

Beau Belgrave (1):
selftests/user_events: Test struct size match cases

Steven Rostedt (Google) (1):
tracing: Stop FORTIFY_SOURCE complaining about stack trace caller

Zheng Yejian (2):
ring-buffer: Fix deadloop issue on reading trace_pipe
ftrace: Fix possible warning on checking all pages used in ftrace_process_locs()

----
arch/arm64/include/asm/ftrace.h | 4 +++
arch/arm64/include/asm/syscall.h | 3 ++
arch/arm64/kernel/syscall.c | 3 --
include/linux/ftrace.h | 9 ++++++
kernel/trace/fgraph.c | 1 +
kernel/trace/ftrace.c | 45 ++++++++++++++++++--------
kernel/trace/ftrace_internal.h | 5 +--
kernel/trace/ring_buffer.c | 24 ++++++++------
kernel/trace/trace.c | 21 ++++++++++--
kernel/trace/trace_kprobe_selftest.c | 3 ++
tools/testing/selftests/user_events/dyn_test.c | 12 +++++++
11 files changed, 100 insertions(+), 30 deletions(-)