On Thu, 23 Mar 2023 13:59:34 +0800 Yafang Shao <laoar.shao@xxxxxxxxx> wrote: > I have verified the latest linux-trace tree, > git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git > trace/core > > The result of "uname -r" is ''6.3.0-rc3+". > This issue still exists, and after applying this patch it disappears. > It can be reproduced with a simple bpf program as follows, > SEC("kprobe.multi/preempt_count_sub") > int fprobe_test() > { > return 0; > } Still your patch is hiding a bug, not fixing one. Can you apply this patch and see if the bug goes away? -- Steve diff --git a/include/linux/context_tracking.h b/include/linux/context_tracking.h index d4afa8508a80..3a7909ed5498 100644 --- a/include/linux/context_tracking.h +++ b/include/linux/context_tracking.h @@ -96,6 +96,7 @@ static inline void user_exit_irqoff(void) { } 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 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) { } #define CT_WARN_ON(cond) do { } while (0) diff --git a/kernel/entry/common.c b/kernel/entry/common.c index 846add8394c4..1314894d2efa 100644 --- a/kernel/entry/common.c +++ b/kernel/entry/common.c @@ -21,7 +21,7 @@ static __always_inline void __enter_from_user_mode(struct pt_regs *regs) arch_enter_from_user_mode(regs); lockdep_hardirqs_off(CALLER_ADDR0); - CT_WARN_ON(ct_state() != CONTEXT_USER); + CT_WARN_ON(__ct_state() != CONTEXT_USER); user_exit_irqoff(); instrumentation_begin(); -- 2.39.1