]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
context_tracking: Fix KCSAN noinstr violation
authorJosh Poimboeuf <jpoimboe@kernel.org>
Wed, 12 Apr 2023 17:24:06 +0000 (10:24 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 14 Apr 2023 14:08:27 +0000 (16:08 +0200)
With KCSAN enabled, even empty inline stubs can be out-of-lined.

Force the context_tracking_guest_exit() stub inline.

Fixes the following warnings:

  vmlinux.o: warning: objtool: vmx_vcpu_enter_exit+0x1be: call to context_tracking_guest_exit() leaves .noinstr.text section
  vmlinux.o: warning: objtool: svm_vcpu_enter_exit+0x85: call to context_tracking_guest_exit() leaves .noinstr.text section

Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/dc93f45abdec90c171108b4b590b7fff5790963c.1681320026.git.jpoimboe@kernel.org
include/linux/context_tracking.h

index d4afa8508a806bc500c3a058799722eb9c74e749..5ae3abd767b47b2b7f51049eb05c436977729a30 100644 (file)
@@ -97,7 +97,7 @@ static inline int exception_enter(void) { return 0; }
 static inline void exception_exit(enum ctx_state prev_ctx) { }
 static inline int ct_state(void) { return -1; }
 static __always_inline bool context_tracking_guest_enter(void) { return false; }
-static inline void context_tracking_guest_exit(void) { }
+static __always_inline void context_tracking_guest_exit(void) { }
 #define CT_WARN_ON(cond) do { } while (0)
 #endif /* !CONFIG_CONTEXT_TRACKING_USER */