Re: [syzbot] Re: 000000000000fcfa6406141cc8ac@xxxxxxxxxx

From: syzbot
Date: Thu Jun 06 2024 - 05:03:43 EST


For archival purposes, forwarding an incoming command email to
linux-kernel@xxxxxxxxxxxxxxx, syzkaller-bugs@xxxxxxxxxxxxxxxx.

***

Subject: Re: 000000000000fcfa6406141cc8ac@xxxxxxxxxx
Author: wojciech.gladysz@xxxxxxxxxxxx

#syz test https://linux.googlesource.com/linux/kernel/git/torvalds/linux e377d803b65ee4130213b3c041fc25fdfec1bd90

--- a/kernel/trace/bpf_trace.c
+++ b/kernel/trace/bpf_trace.c
@@ -2393,12 +2393,21 @@ void __bpf_trace_run(struct bpf_raw_tp_link *link, u64 *args)
     cant_sleep();

     // return if instrumentation disabled, see: bpf_disable_instrumentation
-     if (unlikely(__this_cpu_read(bpf_prog_active))) {
+     int instrumentation = unlikely(__this_cpu_read(bpf_prog_active));
+     if (instrumentation) {
+           printk("SKIP FOR INSTRUMENTATION: %s > %s > %p /%i ==============\n",
+                       prog->aux->name,
+                       link->btp->tp->name, prog, instrumentation);
           bpf_prog_inc_misses_counter(prog);
           return;
     }

-     if (unlikely(this_cpu_inc_return(*(prog->active)) != 1)) {
+     int active = this_cpu_inc_return(*(prog->active));
+     // printk("%s > %s > %p /%i\n", prog->aux->name, link->btp->tp->name, prog, active);
+     if (active != 1) {
+           printk("SKIP FOR ACTIVE: %s > %s > %p /%i =======================\n",
+                       prog->aux->name,
+                       link->btp->tp->name, prog, active);
           bpf_prog_inc_misses_counter(prog);
           goto out;
     }
--- a/kernel/tracepoint.c
+++ b/kernel/tracepoint.c
@@ -67,7 +67,7 @@ static void tp_rcu_cond_sync(enum tp_transition_sync sync)
}

/* Set to 1 to enable tracepoint debug output */
-static const int tracepoint_debug;
+static const int tracepoint_debug=1;

#ifdef CONFIG_MODULES
/*
@@ -298,6 +298,8 @@ static enum tp_func_state nr_func_state(const struct tracepoint_func *tp_funcs)
{
     if (!tp_funcs)
           return TP_FUNC_0;
+     if (!tp_funcs[0].func)
+           return TP_FUNC_0;
     if (!tp_funcs[1].func)
           return TP_FUNC_1;
     if (!tp_funcs[2].func)

The information in this email is confidential and may be legally privileged. It is intended solely for the addressee and access to it by anyone else is unauthorized. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken based on it, is strictly prohibited and may be unlawful.