[Devel] [PATCH 2/2] tracing: Avoid IBT sealing in probestub and traceiter

Eva Kurchatova eva.kurchatova at virtuozzo.com
Sun May 17 22:28:04 MSK 2026


Do not seal ENDBR instructions in probestub and traceiter
helpers, as those may be indirectly called via ftrace.
This is required, as __tracepoints section is skipped by
IBT verification in objtool for proper KLP support.

Signed-off-by: Eva Kurchatova <eva.kurchatova at virtuozzo.com>

https://virtuozzo.atlassian.net/browse/VSTOR-131560
Feature: fix tracepoint
---
 include/linux/tracepoint.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h
index 583d962abcc3..41f05599788f 100644
--- a/include/linux/tracepoint.h
+++ b/include/linux/tracepoint.h
@@ -19,6 +19,7 @@
 #include <linux/rcupdate.h>
 #include <linux/tracepoint-defs.h>
 #include <linux/static_call.h>
+#include <asm/ibt.h>
 
 struct module;
 struct tracepoint;
@@ -356,7 +357,9 @@ static inline struct tracepoint *tracepoint_ptr_deref(tracepoint_ptr_t *p)
 	void __probestub_##_name(void *__data, proto)			\
 	{								\
 	}								\
-	DEFINE_STATIC_CALL(tp_func_##_name, __traceiter_##_name);
+	DEFINE_STATIC_CALL(tp_func_##_name, __traceiter_##_name);	\
+	asm("" IBT_NOSEAL(__stringify(__probestub_##_name))		\
+	    IBT_NOSEAL(__stringify(__traceiter_##_name)));
 
 #define DEFINE_TRACE_FN(_name, _reg, _unreg, _proto, _args)		\
 	static struct tracepoint_ext __tracepoint_ext_##_name = {	\
-- 
2.54.0



More information about the Devel mailing list