[GIT PULL] ring-buffer: Fix for v7.1

Steven Rostedt posted 1 patch 1 month, 3 weeks ago
kernel/trace/.gitignore       |  1 -
kernel/trace/Makefile         | 35 ++++-------------------------------
kernel/trace/undefsyms_base.c | 28 ++++++++++++++++++++++++++++
3 files changed, 32 insertions(+), 32 deletions(-)
delete mode 100644 kernel/trace/.gitignore
create mode 100644 kernel/trace/undefsyms_base.c
[GIT PULL] ring-buffer: Fix for v7.1
Posted by Steven Rostedt 1 month, 3 weeks ago

Linus,

ring-buffer fix for v7.1

- Make undefsyms_base.c into a real file

  The file undefsyms_base.c is used to catch any symbols used by a remote
  ring buffer that is made for use of a pKVM hypervisor. As it doesn't share
  the same text as the rest of the kernel, referencing any symbols within
  the kernel will make it fail to be built for the standalone hypervisor.

  A file was created by the Makefile that checked for any symbols that could
  cause issues. There's no reason to have this file created by the Makefile,
  just create it as a normal file instead.


Please pull the latest trace-ring-buffer-v7.1-2 tree, which can be found at:


  git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
trace-ring-buffer-v7.1-2

Tag SHA1: 9a447b7a6cfc48217db5be369fa2f0dc8e4eb273
Head SHA1: 5335e318ad3cf12d905de27e3be4e7fd7b1c6746


Paolo Bonzini (1):
      tracing: Make undefsyms_base.c a first-class citizen

----
 kernel/trace/.gitignore       |  1 -
 kernel/trace/Makefile         | 35 ++++-------------------------------
 kernel/trace/undefsyms_base.c | 28 ++++++++++++++++++++++++++++
 3 files changed, 32 insertions(+), 32 deletions(-)
 delete mode 100644 kernel/trace/.gitignore
 create mode 100644 kernel/trace/undefsyms_base.c
---------------------------
commit 5335e318ad3cf12d905de27e3be4e7fd7b1c6746
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Apr 21 11:04:55 2026 +0100

    tracing: Make undefsyms_base.c a first-class citizen
    
    Linus points out that dumping undefsyms_base.c form the Makefile
    is rather ugly, and that a much better course of action would be
    to have this file as a first-class citizen in the git tree.
    
    This allows some extra cleanup in the Makefile, and the removal of
    the .gitignore file in kernel/trace.
    
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/r/CAHk-=wieqGd_XKpu8UxDoyADZx8TDe8CF3RmkUXt5N_9t5Pf_w@mail.gmail.com
    Link: https://lore.kernel.org/all/20260421095446.2951646-1-maz@kernel.org/
    Link: https://patch.msgid.link/20260421100455.324333-1-pbonzini@redhat.com
    Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
    Reviewed-by: Nathan Chancellor <nathan@kernel.org>
    Tested-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>

diff --git a/kernel/trace/.gitignore b/kernel/trace/.gitignore
deleted file mode 100644
index 6adbb09d6deb..000000000000
--- a/kernel/trace/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/undefsyms_base.c
diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
index 4d4229e5eec4..1decdce8cbef 100644
--- a/kernel/trace/Makefile
+++ b/kernel/trace/Makefile
@@ -133,41 +133,14 @@ obj-$(CONFIG_TRACE_REMOTE) += trace_remote.o
 obj-$(CONFIG_SIMPLE_RING_BUFFER) += simple_ring_buffer.o
 obj-$(CONFIG_TRACE_REMOTE_TEST) += remote_test.o
 
-#
 # simple_ring_buffer is used by the pKVM hypervisor which does not have access
 # to all kernel symbols. Fail the build if forbidden symbols are found.
-#
-# undefsyms_base generates a set of compiler and tooling-generated symbols that can
-# safely be ignored for simple_ring_buffer.
-#
-filechk_undefsyms_base = \
-	echo '$(pound)include <linux/atomic.h>'; \
-	echo '$(pound)include <linux/string.h>'; \
-	echo '$(pound)include <asm/page.h>'; \
-	echo 'static char page[PAGE_SIZE] __aligned(PAGE_SIZE);'; \
-	echo 'void undefsyms_base(void *p, int n);'; \
-	echo 'void undefsyms_base(void *p, int n) {'; \
-	echo '	char buffer[256] = { 0 };'; \
-	echo '	u32 u = 0;'; \
-	echo '	memset((char * volatile)page, 8, PAGE_SIZE);'; \
-	echo '	memset((char * volatile)buffer, 8, sizeof(buffer));'; \
-	echo '	memcpy((void * volatile)p, buffer, sizeof(buffer));'; \
-	echo '	cmpxchg((u32 * volatile)&u, 0, 8);'; \
-	echo '	WARN_ON(n == 0xdeadbeef);'; \
-	echo '}'
-
-$(obj)/undefsyms_base.c: FORCE
-	$(call filechk,undefsyms_base)
-
-clean-files += undefsyms_base.c
-
-$(obj)/undefsyms_base.o: $(obj)/undefsyms_base.c
 
+# Basic compiler and tooling-generated symbols that can safely be left
+# undefined. Ensure KASAN is enabled to avoid logic that may disable
+# FORTIFY_SOURCE when KASAN is not enabled. undefsyms_base.o does not
+# automatically get KASAN flags because it is not linked into vmlinux.
 targets += undefsyms_base.o
-
-# Ensure KASAN is enabled to avoid logic that may disable FORTIFY_SOURCE when
-# KASAN is not enabled. undefsyms_base.o does not automatically get KASAN flags
-# because it is not linked into vmlinux.
 KASAN_SANITIZE_undefsyms_base.o := y
 
 UNDEFINED_ALLOWLIST = __asan __gcov __kasan __kcsan __hwasan __sancov __sanitizer __tsan __ubsan __x86_indirect_thunk \
diff --git a/kernel/trace/undefsyms_base.c b/kernel/trace/undefsyms_base.c
new file mode 100644
index 000000000000..e65baf58e6ff
--- /dev/null
+++ b/kernel/trace/undefsyms_base.c
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/*
+ * simple_ring_buffer is used by the pKVM hypervisor which does not have access
+ * to all kernel symbols.  Whatever is undefined when compiling this file is
+ * compiler and tooling-generated symbols that can safely be ignored for
+ * simple_ring_buffer.
+ */
+
+#include <linux/atomic.h>
+#include <linux/string.h>
+#include <asm/page.h>
+
+void undefsyms_base(void *p, int n);
+
+static char page[PAGE_SIZE] __aligned(PAGE_SIZE);
+
+void undefsyms_base(void *p, int n)
+{
+	char buffer[256] = { 0 };
+
+	u32 u = 0;
+	memset((char * volatile)page, 8, PAGE_SIZE);
+	memset((char * volatile)buffer, 8, sizeof(buffer));
+	memcpy((void * volatile)p, buffer, sizeof(buffer));
+	cmpxchg((u32 * volatile)&u, 0, 8);
+	WARN_ON(n == 0xdeadbeef);
+}
Re: [GIT PULL] ring-buffer: Fix for v7.1
Posted by pr-tracker-bot@kernel.org 1 month, 3 weeks ago
The pull request you sent on Wed, 22 Apr 2026 15:47:06 -0400:

> git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git trace-ring-buffer-v7.1-2

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/1e18ed5727e827d627e4897bfed9d001d5d51d65

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html