* [syzbot] [bpf?] WARNING in __bpf_prog_ret0_warn @ 2025-05-04 3:47 syzbot 2025-05-23 14:47 ` KaFai Wan 0 siblings, 1 reply; 5+ messages in thread From: syzbot @ 2025-05-04 3:47 UTC (permalink / raw) To: andrii, ast, bpf, daniel, eddyz87, haoluo, john.fastabend, jolsa, kpsingh, linux-kernel, martin.lau, sdf, song, syzkaller-bugs, yonghong.song Hello, syzbot found the following issue on: HEAD commit: 8bac8898fe39 Merge tag 'mmc-v6.15-rc1' of git://git.kernel.. git tree: upstream console output: https://syzkaller.appspot.com/x/log.txt?x=10f03774580000 kernel config: https://syzkaller.appspot.com/x/.config?x=541aa584278da96c dashboard link: https://syzkaller.appspot.com/bug?extid=0903f6d7f285e41cdf10 compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1550ca70580000 C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17d10f74580000 Downloadable assets: disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/7feb34a89c2a/non_bootable_disk-8bac8898.raw.xz vmlinux: https://storage.googleapis.com/syzbot-assets/5f7c2d7e1cd1/vmlinux-8bac8898.xz kernel image: https://storage.googleapis.com/syzbot-assets/77a157d2769a/bzImage-8bac8898.xz IMPORTANT: if you fix the issue, please add the following tag to the commit: Reported-by: syzbot+0903f6d7f285e41cdf10@syzkaller.appspotmail.com ------------[ cut here ]------------ WARNING: CPU: 3 PID: 217 at kernel/bpf/core.c:2357 __bpf_prog_ret0_warn+0xa/0x20 kernel/bpf/core.c:2357 Modules linked in: CPU: 3 UID: 0 PID: 217 Comm: kworker/u32:6 Not tainted 6.15.0-rc4-syzkaller-00040-g8bac8898fe39 #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 Workqueue: ipv6_addrconf addrconf_dad_work RIP: 0010:__bpf_prog_ret0_warn+0xa/0x20 kernel/bpf/core.c:2357 Code: f3 0f 1e fa e8 a7 c7 f0 ff 31 c0 c3 cc cc cc cc 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa e8 87 c7 f0 ff 90 <0f> 0b 90 31 c0 c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 90 RSP: 0018:ffffc900031f6c18 EFLAGS: 00010293 RAX: 0000000000000000 RBX: ffffc9000006e000 RCX: 1ffff9200000dc06 RDX: ffff8880234ba440 RSI: ffffffff81ca6979 RDI: ffff888031e93040 RBP: ffffc900031f6cb8 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: ffff88802b61e010 R13: ffff888031e93040 R14: 00000000000000a0 R15: ffff88802c3d4800 FS: 0000000000000000(0000) GS:ffff8880d6ce2000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000055557b6d2ca8 CR3: 000000002473e000 CR4: 0000000000352ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> bpf_dispatcher_nop_func include/linux/bpf.h:1316 [inline] __bpf_prog_run include/linux/filter.h:718 [inline] bpf_prog_run include/linux/filter.h:725 [inline] cls_bpf_classify+0x74a/0x1110 net/sched/cls_bpf.c:105 tc_classify include/net/tc_wrapper.h:197 [inline] __tcf_classify net/sched/cls_api.c:1764 [inline] tcf_classify+0x7ef/0x1380 net/sched/cls_api.c:1860 htb_classify net/sched/sch_htb.c:245 [inline] htb_enqueue+0x2f6/0x12d0 net/sched/sch_htb.c:624 dev_qdisc_enqueue net/core/dev.c:3984 [inline] __dev_xmit_skb net/core/dev.c:4080 [inline] __dev_queue_xmit+0x2142/0x43e0 net/core/dev.c:4595 dev_queue_xmit include/linux/netdevice.h:3350 [inline] neigh_hh_output include/net/neighbour.h:523 [inline] neigh_output include/net/neighbour.h:537 [inline] ip_finish_output2+0xc38/0x21a0 net/ipv4/ip_output.c:235 __ip_finish_output net/ipv4/ip_output.c:313 [inline] __ip_finish_output+0x49e/0x950 net/ipv4/ip_output.c:295 ip_finish_output+0x35/0x380 net/ipv4/ip_output.c:323 NF_HOOK_COND include/linux/netfilter.h:303 [inline] ip_output+0x13b/0x2a0 net/ipv4/ip_output.c:433 dst_output include/net/dst.h:459 [inline] ip_local_out+0x33e/0x4a0 net/ipv4/ip_output.c:129 iptunnel_xmit+0x5d5/0xa00 net/ipv4/ip_tunnel_core.c:82 geneve_xmit_skb drivers/net/geneve.c:921 [inline] geneve_xmit+0x2bc5/0x5610 drivers/net/geneve.c:1046 __netdev_start_xmit include/linux/netdevice.h:5203 [inline] netdev_start_xmit include/linux/netdevice.h:5212 [inline] xmit_one net/core/dev.c:3776 [inline] dev_hard_start_xmit+0x93/0x740 net/core/dev.c:3792 __dev_queue_xmit+0x7eb/0x43e0 net/core/dev.c:4629 dev_queue_xmit include/linux/netdevice.h:3350 [inline] neigh_hh_output include/net/neighbour.h:523 [inline] neigh_output include/net/neighbour.h:537 [inline] ip6_finish_output2+0xe98/0x2020 net/ipv6/ip6_output.c:141 __ip6_finish_output net/ipv6/ip6_output.c:215 [inline] ip6_finish_output+0x3f9/0x1360 net/ipv6/ip6_output.c:226 NF_HOOK_COND include/linux/netfilter.h:303 [inline] ip6_output+0x1f9/0x540 net/ipv6/ip6_output.c:247 dst_output include/net/dst.h:459 [inline] NF_HOOK include/linux/netfilter.h:314 [inline] NF_HOOK include/linux/netfilter.h:308 [inline] mld_sendpack+0x9e9/0x1220 net/ipv6/mcast.c:1868 mld_send_initial_cr.part.0+0x1a1/0x260 net/ipv6/mcast.c:2285 mld_send_initial_cr include/linux/refcount.h:291 [inline] ipv6_mc_dad_complete+0x22c/0x2b0 net/ipv6/mcast.c:2293 addrconf_dad_completed+0xd8a/0x10d0 net/ipv6/addrconf.c:4341 addrconf_dad_work+0x84d/0x14e0 net/ipv6/addrconf.c:4269 process_one_work+0x9cc/0x1b70 kernel/workqueue.c:3238 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400 kthread+0x3c2/0x780 kernel/kthread.c:464 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:153 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 </TASK> --- This report is generated by a bot. It may contain errors. See https://goo.gl/tpsmEJ for more information about syzbot. syzbot engineers can be reached at syzkaller@googlegroups.com. syzbot will keep track of this issue. See: https://goo.gl/tpsmEJ#status for how to communicate with syzbot. If the report is already addressed, let syzbot know by replying with: #syz fix: exact-commit-title If you want syzbot to run the reproducer, reply with: #syz test: git://repo/address.git branch-or-commit-hash If you attach or paste a git patch, syzbot will apply it before testing. If you want to overwrite report's subsystems, reply with: #syz set subsystems: new-subsystem (See the list of subsystem names on the web dashboard) If the report is a duplicate of another one, reply with: #syz dup: exact-subject-of-another-report If you want to undo deduplication, reply with: #syz undup ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] [bpf?] WARNING in __bpf_prog_ret0_warn 2025-05-04 3:47 [syzbot] [bpf?] WARNING in __bpf_prog_ret0_warn syzbot @ 2025-05-23 14:47 ` KaFai Wan 2025-05-23 14:52 ` Alexei Starovoitov 2025-05-23 15:08 ` syzbot 0 siblings, 2 replies; 5+ messages in thread From: KaFai Wan @ 2025-05-23 14:47 UTC (permalink / raw) To: syzbot, andrii, ast, bpf, daniel, eddyz87, haoluo, john.fastabend, jolsa, kpsingh, linux-kernel, martin.lau, sdf, song, syzkaller-bugs, yonghong.song On Sat, 2025-05-03 at 20:47 -0700, syzbot wrote: > Hello, > > syzbot found the following issue on: > > HEAD commit: 8bac8898fe39 Merge tag 'mmc-v6.15-rc1' of > git://git.kernel.. > git tree: upstream > console output: > https://syzkaller.appspot.com/x/log.txt?x=10f03774580000 > kernel config: > https://syzkaller.appspot.com/x/.config?x=541aa584278da96c > dashboard link: > https://syzkaller.appspot.com/bug?extid=0903f6d7f285e41cdf10 > compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils > for Debian) 2.40 > syz repro: > https://syzkaller.appspot.com/x/repro.syz?x=1550ca70580000 > C reproducer: > https://syzkaller.appspot.com/x/repro.c?x=17d10f74580000 > > Downloadable assets: > disk image (non-bootable): > https://storage.googleapis.com/syzbot-assets/7feb34a89c2a/non_bootable_disk-8bac8898.raw.xz > vmlinux: > https://storage.googleapis.com/syzbot-assets/5f7c2d7e1cd1/vmlinux-8bac8898.xz > kernel image: > https://storage.googleapis.com/syzbot-assets/77a157d2769a/bzImage-8bac8898.xz > > IMPORTANT: if you fix the issue, please add the following tag to the > commit: > Reported-by: syzbot+0903f6d7f285e41cdf10@syzkaller.appspotmail.com > > ------------[ cut here ]------------ > WARNING: CPU: 3 PID: 217 at kernel/bpf/core.c:2357 > __bpf_prog_ret0_warn+0xa/0x20 kernel/bpf/core.c:2357 > Modules linked in: > CPU: 3 UID: 0 PID: 217 Comm: kworker/u32:6 Not tainted 6.15.0-rc4- > syzkaller-00040-g8bac8898fe39 #0 PREEMPT(full) > Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3- > debian-1.16.3-2~bpo12+1 04/01/2014 > Workqueue: ipv6_addrconf addrconf_dad_work > RIP: 0010:__bpf_prog_ret0_warn+0xa/0x20 kernel/bpf/core.c:2357 > Code: f3 0f 1e fa e8 a7 c7 f0 ff 31 c0 c3 cc cc cc cc 90 90 90 90 90 > 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa e8 87 c7 f0 ff 90 <0f> > 0b 90 31 c0 c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 90 > RSP: 0018:ffffc900031f6c18 EFLAGS: 00010293 > RAX: 0000000000000000 RBX: ffffc9000006e000 RCX: 1ffff9200000dc06 > RDX: ffff8880234ba440 RSI: ffffffff81ca6979 RDI: ffff888031e93040 > RBP: ffffc900031f6cb8 R08: 0000000000000001 R09: 0000000000000000 > R10: 0000000000000000 R11: 0000000000000000 R12: ffff88802b61e010 > R13: ffff888031e93040 R14: 00000000000000a0 R15: ffff88802c3d4800 > FS: 0000000000000000(0000) GS:ffff8880d6ce2000(0000) > knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 000055557b6d2ca8 CR3: 000000002473e000 CR4: 0000000000352ef0 > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > Call Trace: > <TASK> > bpf_dispatcher_nop_func include/linux/bpf.h:1316 [inline] > __bpf_prog_run include/linux/filter.h:718 [inline] > bpf_prog_run include/linux/filter.h:725 [inline] > cls_bpf_classify+0x74a/0x1110 net/sched/cls_bpf.c:105 > tc_classify include/net/tc_wrapper.h:197 [inline] > __tcf_classify net/sched/cls_api.c:1764 [inline] > tcf_classify+0x7ef/0x1380 net/sched/cls_api.c:1860 > htb_classify net/sched/sch_htb.c:245 [inline] > htb_enqueue+0x2f6/0x12d0 net/sched/sch_htb.c:624 > dev_qdisc_enqueue net/core/dev.c:3984 [inline] > __dev_xmit_skb net/core/dev.c:4080 [inline] > __dev_queue_xmit+0x2142/0x43e0 net/core/dev.c:4595 > dev_queue_xmit include/linux/netdevice.h:3350 [inline] > neigh_hh_output include/net/neighbour.h:523 [inline] > neigh_output include/net/neighbour.h:537 [inline] > ip_finish_output2+0xc38/0x21a0 net/ipv4/ip_output.c:235 > __ip_finish_output net/ipv4/ip_output.c:313 [inline] > __ip_finish_output+0x49e/0x950 net/ipv4/ip_output.c:295 > ip_finish_output+0x35/0x380 net/ipv4/ip_output.c:323 > NF_HOOK_COND include/linux/netfilter.h:303 [inline] > ip_output+0x13b/0x2a0 net/ipv4/ip_output.c:433 > dst_output include/net/dst.h:459 [inline] > ip_local_out+0x33e/0x4a0 net/ipv4/ip_output.c:129 > iptunnel_xmit+0x5d5/0xa00 net/ipv4/ip_tunnel_core.c:82 > geneve_xmit_skb drivers/net/geneve.c:921 [inline] > geneve_xmit+0x2bc5/0x5610 drivers/net/geneve.c:1046 > __netdev_start_xmit include/linux/netdevice.h:5203 [inline] > netdev_start_xmit include/linux/netdevice.h:5212 [inline] > xmit_one net/core/dev.c:3776 [inline] > dev_hard_start_xmit+0x93/0x740 net/core/dev.c:3792 > __dev_queue_xmit+0x7eb/0x43e0 net/core/dev.c:4629 > dev_queue_xmit include/linux/netdevice.h:3350 [inline] > neigh_hh_output include/net/neighbour.h:523 [inline] > neigh_output include/net/neighbour.h:537 [inline] > ip6_finish_output2+0xe98/0x2020 net/ipv6/ip6_output.c:141 > __ip6_finish_output net/ipv6/ip6_output.c:215 [inline] > ip6_finish_output+0x3f9/0x1360 net/ipv6/ip6_output.c:226 > NF_HOOK_COND include/linux/netfilter.h:303 [inline] > ip6_output+0x1f9/0x540 net/ipv6/ip6_output.c:247 > dst_output include/net/dst.h:459 [inline] > NF_HOOK include/linux/netfilter.h:314 [inline] > NF_HOOK include/linux/netfilter.h:308 [inline] > mld_sendpack+0x9e9/0x1220 net/ipv6/mcast.c:1868 > mld_send_initial_cr.part.0+0x1a1/0x260 net/ipv6/mcast.c:2285 > mld_send_initial_cr include/linux/refcount.h:291 [inline] > ipv6_mc_dad_complete+0x22c/0x2b0 net/ipv6/mcast.c:2293 > addrconf_dad_completed+0xd8a/0x10d0 net/ipv6/addrconf.c:4341 > addrconf_dad_work+0x84d/0x14e0 net/ipv6/addrconf.c:4269 > process_one_work+0x9cc/0x1b70 kernel/workqueue.c:3238 > process_scheduled_works kernel/workqueue.c:3319 [inline] > worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400 > kthread+0x3c2/0x780 kernel/kthread.c:464 > ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:153 > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 > </TASK> > > > --- > This report is generated by a bot. It may contain errors. > See https://goo.gl/tpsmEJ for more information about syzbot. > syzbot engineers can be reached at syzkaller@googlegroups.com. > > syzbot will keep track of this issue. See: > https://goo.gl/tpsmEJ#status for how to communicate with syzbot. > > If the report is already addressed, let syzbot know by replying with: > #syz fix: exact-commit-title > > If you want syzbot to run the reproducer, reply with: > #syz test: git://repo/address.git branch-or-commit-hash > If you attach or paste a git patch, syzbot will apply it before > testing. > > If you want to overwrite report's subsystems, reply with: > #syz set subsystems: new-subsystem > (See the list of subsystem names on the web dashboard) > > If the report is a duplicate of another one, reply with: > #syz dup: exact-subject-of-another-report > > If you want to undo deduplication, reply with: > #syz undup > I think this issue is triggered because of CONFIG_BPF_JIT_ALWAYS_ON is not set and /proc/sys/net/core/bpf_jit_enable is set to 1, causing the arch to attempt JIT the prog, but jit failed due to FAULT_INJECTION. When `bpf_jit_enable` set to 1, sets `fp->jit_requested = 1` to indicate need to jit when create BPF program. During runtime selection, set 'fp->bpf_func' to `__bpf_prog_ret0_warn` by default, and should return an error when prog need to jit(`jit_needed`) but not jited. Since CONFIG_BPF_JIT_ALWAYS_ON is not set and the BPF program contains no kfuncs, the `jit_needed` set to false. As a result, incorrectly treats the program as valid, when the program runs it calls `__bpf_prog_ret0_warn` and triggers the WARN_ON_ONCE(1). -- Thanks, kafai #syz test diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c index ba6b6118cf50..4c951d60bef5 100644 --- a/kernel/bpf/core.c +++ b/kernel/bpf/core.c @@ -2474,8 +2474,7 @@ struct bpf_prog *bpf_prog_select_runtime(struct bpf_prog *fp, int *err) if (fp->bpf_func) goto finalize; - if (IS_ENABLED(CONFIG_BPF_JIT_ALWAYS_ON) || - bpf_prog_has_kfunc_call(fp)) + if (fp->jit_requested || bpf_prog_has_kfunc_call(fp)) jit_needed = true; bpf_prog_select_func(fp); ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [syzbot] [bpf?] WARNING in __bpf_prog_ret0_warn 2025-05-23 14:47 ` KaFai Wan @ 2025-05-23 14:52 ` Alexei Starovoitov 2025-05-26 13:31 ` Kafai Wan 2025-05-23 15:08 ` syzbot 1 sibling, 1 reply; 5+ messages in thread From: Alexei Starovoitov @ 2025-05-23 14:52 UTC (permalink / raw) To: KaFai Wan, Kuniyuki Iwashima Cc: syzbot, Andrii Nakryiko, Alexei Starovoitov, bpf, Daniel Borkmann, Eduard, Hao Luo, John Fastabend, Jiri Olsa, KP Singh, LKML, Martin KaFai Lau, Stanislav Fomichev, Song Liu, syzkaller-bugs, Yonghong Song On Fri, May 23, 2025 at 7:48 AM KaFai Wan <mannkafai@gmail.com> wrote: > > On Sat, 2025-05-03 at 20:47 -0700, syzbot wrote: > > Hello, > > > > syzbot found the following issue on: > > > > HEAD commit: 8bac8898fe39 Merge tag 'mmc-v6.15-rc1' of > > git://git.kernel.. > > git tree: upstream > > console output: > > https://syzkaller.appspot.com/x/log.txt?x=10f03774580000 > > kernel config: > > https://syzkaller.appspot.com/x/.config?x=541aa584278da96c > > dashboard link: > > https://syzkaller.appspot.com/bug?extid=0903f6d7f285e41cdf10 > > compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils > > for Debian) 2.40 > > syz repro: > > https://syzkaller.appspot.com/x/repro.syz?x=1550ca70580000 > > C reproducer: > > https://syzkaller.appspot.com/x/repro.c?x=17d10f74580000 > > > > Downloadable assets: > > disk image (non-bootable): > > https://storage.googleapis.com/syzbot-assets/7feb34a89c2a/non_bootable_disk-8bac8898.raw.xz > > vmlinux: > > https://storage.googleapis.com/syzbot-assets/5f7c2d7e1cd1/vmlinux-8bac8898.xz > > kernel image: > > https://storage.googleapis.com/syzbot-assets/77a157d2769a/bzImage-8bac8898.xz > > > > IMPORTANT: if you fix the issue, please add the following tag to the > > commit: > > Reported-by: syzbot+0903f6d7f285e41cdf10@syzkaller.appspotmail.com > > > > ------------[ cut here ]------------ > > WARNING: CPU: 3 PID: 217 at kernel/bpf/core.c:2357 > > __bpf_prog_ret0_warn+0xa/0x20 kernel/bpf/core.c:2357 > > Modules linked in: > > CPU: 3 UID: 0 PID: 217 Comm: kworker/u32:6 Not tainted 6.15.0-rc4- > > syzkaller-00040-g8bac8898fe39 #0 PREEMPT(full) > > Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3- > > debian-1.16.3-2~bpo12+1 04/01/2014 > > Workqueue: ipv6_addrconf addrconf_dad_work > > RIP: 0010:__bpf_prog_ret0_warn+0xa/0x20 kernel/bpf/core.c:2357 > > Code: f3 0f 1e fa e8 a7 c7 f0 ff 31 c0 c3 cc cc cc cc 90 90 90 90 90 > > 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa e8 87 c7 f0 ff 90 <0f> > > 0b 90 31 c0 c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 90 > > RSP: 0018:ffffc900031f6c18 EFLAGS: 00010293 > > RAX: 0000000000000000 RBX: ffffc9000006e000 RCX: 1ffff9200000dc06 > > RDX: ffff8880234ba440 RSI: ffffffff81ca6979 RDI: ffff888031e93040 > > RBP: ffffc900031f6cb8 R08: 0000000000000001 R09: 0000000000000000 > > R10: 0000000000000000 R11: 0000000000000000 R12: ffff88802b61e010 > > R13: ffff888031e93040 R14: 00000000000000a0 R15: ffff88802c3d4800 > > FS: 0000000000000000(0000) GS:ffff8880d6ce2000(0000) > > knlGS:0000000000000000 > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > CR2: 000055557b6d2ca8 CR3: 000000002473e000 CR4: 0000000000352ef0 > > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > > DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > > Call Trace: > > <TASK> > > bpf_dispatcher_nop_func include/linux/bpf.h:1316 [inline] > > __bpf_prog_run include/linux/filter.h:718 [inline] > > bpf_prog_run include/linux/filter.h:725 [inline] > > cls_bpf_classify+0x74a/0x1110 net/sched/cls_bpf.c:105 > > tc_classify include/net/tc_wrapper.h:197 [inline] > > __tcf_classify net/sched/cls_api.c:1764 [inline] > > tcf_classify+0x7ef/0x1380 net/sched/cls_api.c:1860 > > htb_classify net/sched/sch_htb.c:245 [inline] > > htb_enqueue+0x2f6/0x12d0 net/sched/sch_htb.c:624 > > dev_qdisc_enqueue net/core/dev.c:3984 [inline] > > __dev_xmit_skb net/core/dev.c:4080 [inline] > > __dev_queue_xmit+0x2142/0x43e0 net/core/dev.c:4595 > > dev_queue_xmit include/linux/netdevice.h:3350 [inline] > > neigh_hh_output include/net/neighbour.h:523 [inline] > > neigh_output include/net/neighbour.h:537 [inline] > > ip_finish_output2+0xc38/0x21a0 net/ipv4/ip_output.c:235 > > __ip_finish_output net/ipv4/ip_output.c:313 [inline] > > __ip_finish_output+0x49e/0x950 net/ipv4/ip_output.c:295 > > ip_finish_output+0x35/0x380 net/ipv4/ip_output.c:323 > > NF_HOOK_COND include/linux/netfilter.h:303 [inline] > > ip_output+0x13b/0x2a0 net/ipv4/ip_output.c:433 > > dst_output include/net/dst.h:459 [inline] > > ip_local_out+0x33e/0x4a0 net/ipv4/ip_output.c:129 > > iptunnel_xmit+0x5d5/0xa00 net/ipv4/ip_tunnel_core.c:82 > > geneve_xmit_skb drivers/net/geneve.c:921 [inline] > > geneve_xmit+0x2bc5/0x5610 drivers/net/geneve.c:1046 > > __netdev_start_xmit include/linux/netdevice.h:5203 [inline] > > netdev_start_xmit include/linux/netdevice.h:5212 [inline] > > xmit_one net/core/dev.c:3776 [inline] > > dev_hard_start_xmit+0x93/0x740 net/core/dev.c:3792 > > __dev_queue_xmit+0x7eb/0x43e0 net/core/dev.c:4629 > > dev_queue_xmit include/linux/netdevice.h:3350 [inline] > > neigh_hh_output include/net/neighbour.h:523 [inline] > > neigh_output include/net/neighbour.h:537 [inline] > > ip6_finish_output2+0xe98/0x2020 net/ipv6/ip6_output.c:141 > > __ip6_finish_output net/ipv6/ip6_output.c:215 [inline] > > ip6_finish_output+0x3f9/0x1360 net/ipv6/ip6_output.c:226 > > NF_HOOK_COND include/linux/netfilter.h:303 [inline] > > ip6_output+0x1f9/0x540 net/ipv6/ip6_output.c:247 > > dst_output include/net/dst.h:459 [inline] > > NF_HOOK include/linux/netfilter.h:314 [inline] > > NF_HOOK include/linux/netfilter.h:308 [inline] > > mld_sendpack+0x9e9/0x1220 net/ipv6/mcast.c:1868 > > mld_send_initial_cr.part.0+0x1a1/0x260 net/ipv6/mcast.c:2285 > > mld_send_initial_cr include/linux/refcount.h:291 [inline] > > ipv6_mc_dad_complete+0x22c/0x2b0 net/ipv6/mcast.c:2293 > > addrconf_dad_completed+0xd8a/0x10d0 net/ipv6/addrconf.c:4341 > > addrconf_dad_work+0x84d/0x14e0 net/ipv6/addrconf.c:4269 > > process_one_work+0x9cc/0x1b70 kernel/workqueue.c:3238 > > process_scheduled_works kernel/workqueue.c:3319 [inline] > > worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400 > > kthread+0x3c2/0x780 kernel/kthread.c:464 > > ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:153 > > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 > > </TASK> > > > > > > --- > > This report is generated by a bot. It may contain errors. > > See https://goo.gl/tpsmEJ for more information about syzbot. > > syzbot engineers can be reached at syzkaller@googlegroups.com. > > > > syzbot will keep track of this issue. See: > > https://goo.gl/tpsmEJ#status for how to communicate with syzbot. > > > > If the report is already addressed, let syzbot know by replying with: > > #syz fix: exact-commit-title > > > > If you want syzbot to run the reproducer, reply with: > > #syz test: git://repo/address.git branch-or-commit-hash > > If you attach or paste a git patch, syzbot will apply it before > > testing. > > > > If you want to overwrite report's subsystems, reply with: > > #syz set subsystems: new-subsystem > > (See the list of subsystem names on the web dashboard) > > > > If the report is a duplicate of another one, reply with: > > #syz dup: exact-subject-of-another-report > > > > If you want to undo deduplication, reply with: > > #syz undup > > > > I think this issue is triggered because of CONFIG_BPF_JIT_ALWAYS_ON is > not set and /proc/sys/net/core/bpf_jit_enable is set to 1, causing the > arch to attempt JIT the prog, but jit failed due to FAULT_INJECTION. > > When `bpf_jit_enable` set to 1, sets `fp->jit_requested = 1` to > indicate need to jit when create BPF program. During runtime selection, > set 'fp->bpf_func' to `__bpf_prog_ret0_warn` by default, and should > return an error when prog need to jit(`jit_needed`) but not jited. > > Since CONFIG_BPF_JIT_ALWAYS_ON is not set and the BPF program contains > no kfuncs, the `jit_needed` set to false. As a result, incorrectly > treats the program as valid, when the program runs it calls > `__bpf_prog_ret0_warn` and triggers the WARN_ON_ONCE(1). > > -- > Thanks, > kafai > > #syz test > > > diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c > index ba6b6118cf50..4c951d60bef5 100644 > --- a/kernel/bpf/core.c > +++ b/kernel/bpf/core.c > @@ -2474,8 +2474,7 @@ struct bpf_prog *bpf_prog_select_runtime(struct > bpf_prog *fp, int *err) > if (fp->bpf_func) > goto finalize; > > - if (IS_ENABLED(CONFIG_BPF_JIT_ALWAYS_ON) || > - bpf_prog_has_kfunc_call(fp)) > + if (fp->jit_requested || bpf_prog_has_kfunc_call(fp)) > jit_needed = true; Not quite. See the thread: https://lore.kernel.org/bpf/CAADnVQJ6NKjhWbr=ya4=R7HaWyyiFneLLisByW3JopfQQYLrpg@mail.gmail.com/ I'm still waiting for somebody to send the patch. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] [bpf?] WARNING in __bpf_prog_ret0_warn 2025-05-23 14:52 ` Alexei Starovoitov @ 2025-05-26 13:31 ` Kafai Wan 0 siblings, 0 replies; 5+ messages in thread From: Kafai Wan @ 2025-05-26 13:31 UTC (permalink / raw) To: Alexei Starovoitov Cc: Kuniyuki Iwashima, syzbot, Andrii Nakryiko, Alexei Starovoitov, bpf, Daniel Borkmann, Eduard, Hao Luo, John Fastabend, Jiri Olsa, KP Singh, LKML, Martin KaFai Lau, Stanislav Fomichev, Song Liu, syzkaller-bugs, Yonghong Song On Fri, May 23, 2025 at 10:52 PM Alexei Starovoitov <alexei.starovoitov@gmail.com> wrote: > > On Fri, May 23, 2025 at 7:48 AM KaFai Wan <mannkafai@gmail.com> wrote: > > > > On Sat, 2025-05-03 at 20:47 -0700, syzbot wrote: > > > Hello, > > > > > > syzbot found the following issue on: > > > > > > HEAD commit: 8bac8898fe39 Merge tag 'mmc-v6.15-rc1' of > > > git://git.kernel.. > > > git tree: upstream > > > console output: > > > https://syzkaller.appspot.com/x/log.txt?x=10f03774580000 > > > kernel config: > > > https://syzkaller.appspot.com/x/.config?x=541aa584278da96c > > > dashboard link: > > > https://syzkaller.appspot.com/bug?extid=0903f6d7f285e41cdf10 > > > compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils > > > for Debian) 2.40 > > > syz repro: > > > https://syzkaller.appspot.com/x/repro.syz?x=1550ca70580000 > > > C reproducer: > > > https://syzkaller.appspot.com/x/repro.c?x=17d10f74580000 > > > > > > Downloadable assets: > > > disk image (non-bootable): > > > https://storage.googleapis.com/syzbot-assets/7feb34a89c2a/non_bootable_disk-8bac8898.raw.xz > > > vmlinux: > > > https://storage.googleapis.com/syzbot-assets/5f7c2d7e1cd1/vmlinux-8bac8898.xz > > > kernel image: > > > https://storage.googleapis.com/syzbot-assets/77a157d2769a/bzImage-8bac8898.xz > > > > > > IMPORTANT: if you fix the issue, please add the following tag to the > > > commit: > > > Reported-by: syzbot+0903f6d7f285e41cdf10@syzkaller.appspotmail.com > > > > > > ------------[ cut here ]------------ > > > WARNING: CPU: 3 PID: 217 at kernel/bpf/core.c:2357 > > > __bpf_prog_ret0_warn+0xa/0x20 kernel/bpf/core.c:2357 > > > Modules linked in: > > > CPU: 3 UID: 0 PID: 217 Comm: kworker/u32:6 Not tainted 6.15.0-rc4- > > > syzkaller-00040-g8bac8898fe39 #0 PREEMPT(full) > > > Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3- > > > debian-1.16.3-2~bpo12+1 04/01/2014 > > > Workqueue: ipv6_addrconf addrconf_dad_work > > > RIP: 0010:__bpf_prog_ret0_warn+0xa/0x20 kernel/bpf/core.c:2357 > > > Code: f3 0f 1e fa e8 a7 c7 f0 ff 31 c0 c3 cc cc cc cc 90 90 90 90 90 > > > 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa e8 87 c7 f0 ff 90 <0f> > > > 0b 90 31 c0 c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 90 > > > RSP: 0018:ffffc900031f6c18 EFLAGS: 00010293 > > > RAX: 0000000000000000 RBX: ffffc9000006e000 RCX: 1ffff9200000dc06 > > > RDX: ffff8880234ba440 RSI: ffffffff81ca6979 RDI: ffff888031e93040 > > > RBP: ffffc900031f6cb8 R08: 0000000000000001 R09: 0000000000000000 > > > R10: 0000000000000000 R11: 0000000000000000 R12: ffff88802b61e010 > > > R13: ffff888031e93040 R14: 00000000000000a0 R15: ffff88802c3d4800 > > > FS: 0000000000000000(0000) GS:ffff8880d6ce2000(0000) > > > knlGS:0000000000000000 > > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > CR2: 000055557b6d2ca8 CR3: 000000002473e000 CR4: 0000000000352ef0 > > > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > > > DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > > > Call Trace: > > > <TASK> > > > bpf_dispatcher_nop_func include/linux/bpf.h:1316 [inline] > > > __bpf_prog_run include/linux/filter.h:718 [inline] > > > bpf_prog_run include/linux/filter.h:725 [inline] > > > cls_bpf_classify+0x74a/0x1110 net/sched/cls_bpf.c:105 > > > tc_classify include/net/tc_wrapper.h:197 [inline] > > > __tcf_classify net/sched/cls_api.c:1764 [inline] > > > tcf_classify+0x7ef/0x1380 net/sched/cls_api.c:1860 > > > htb_classify net/sched/sch_htb.c:245 [inline] > > > htb_enqueue+0x2f6/0x12d0 net/sched/sch_htb.c:624 > > > dev_qdisc_enqueue net/core/dev.c:3984 [inline] > > > __dev_xmit_skb net/core/dev.c:4080 [inline] > > > __dev_queue_xmit+0x2142/0x43e0 net/core/dev.c:4595 > > > dev_queue_xmit include/linux/netdevice.h:3350 [inline] > > > neigh_hh_output include/net/neighbour.h:523 [inline] > > > neigh_output include/net/neighbour.h:537 [inline] > > > ip_finish_output2+0xc38/0x21a0 net/ipv4/ip_output.c:235 > > > __ip_finish_output net/ipv4/ip_output.c:313 [inline] > > > __ip_finish_output+0x49e/0x950 net/ipv4/ip_output.c:295 > > > ip_finish_output+0x35/0x380 net/ipv4/ip_output.c:323 > > > NF_HOOK_COND include/linux/netfilter.h:303 [inline] > > > ip_output+0x13b/0x2a0 net/ipv4/ip_output.c:433 > > > dst_output include/net/dst.h:459 [inline] > > > ip_local_out+0x33e/0x4a0 net/ipv4/ip_output.c:129 > > > iptunnel_xmit+0x5d5/0xa00 net/ipv4/ip_tunnel_core.c:82 > > > geneve_xmit_skb drivers/net/geneve.c:921 [inline] > > > geneve_xmit+0x2bc5/0x5610 drivers/net/geneve.c:1046 > > > __netdev_start_xmit include/linux/netdevice.h:5203 [inline] > > > netdev_start_xmit include/linux/netdevice.h:5212 [inline] > > > xmit_one net/core/dev.c:3776 [inline] > > > dev_hard_start_xmit+0x93/0x740 net/core/dev.c:3792 > > > __dev_queue_xmit+0x7eb/0x43e0 net/core/dev.c:4629 > > > dev_queue_xmit include/linux/netdevice.h:3350 [inline] > > > neigh_hh_output include/net/neighbour.h:523 [inline] > > > neigh_output include/net/neighbour.h:537 [inline] > > > ip6_finish_output2+0xe98/0x2020 net/ipv6/ip6_output.c:141 > > > __ip6_finish_output net/ipv6/ip6_output.c:215 [inline] > > > ip6_finish_output+0x3f9/0x1360 net/ipv6/ip6_output.c:226 > > > NF_HOOK_COND include/linux/netfilter.h:303 [inline] > > > ip6_output+0x1f9/0x540 net/ipv6/ip6_output.c:247 > > > dst_output include/net/dst.h:459 [inline] > > > NF_HOOK include/linux/netfilter.h:314 [inline] > > > NF_HOOK include/linux/netfilter.h:308 [inline] > > > mld_sendpack+0x9e9/0x1220 net/ipv6/mcast.c:1868 > > > mld_send_initial_cr.part.0+0x1a1/0x260 net/ipv6/mcast.c:2285 > > > mld_send_initial_cr include/linux/refcount.h:291 [inline] > > > ipv6_mc_dad_complete+0x22c/0x2b0 net/ipv6/mcast.c:2293 > > > addrconf_dad_completed+0xd8a/0x10d0 net/ipv6/addrconf.c:4341 > > > addrconf_dad_work+0x84d/0x14e0 net/ipv6/addrconf.c:4269 > > > process_one_work+0x9cc/0x1b70 kernel/workqueue.c:3238 > > > process_scheduled_works kernel/workqueue.c:3319 [inline] > > > worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400 > > > kthread+0x3c2/0x780 kernel/kthread.c:464 > > > ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:153 > > > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 > > > </TASK> > > > > > > > > > --- > > > This report is generated by a bot. It may contain errors. > > > See https://goo.gl/tpsmEJ for more information about syzbot. > > > syzbot engineers can be reached at syzkaller@googlegroups.com. > > > > > > syzbot will keep track of this issue. See: > > > https://goo.gl/tpsmEJ#status for how to communicate with syzbot. > > > > > > If the report is already addressed, let syzbot know by replying with: > > > #syz fix: exact-commit-title > > > > > > If you want syzbot to run the reproducer, reply with: > > > #syz test: git://repo/address.git branch-or-commit-hash > > > If you attach or paste a git patch, syzbot will apply it before > > > testing. > > > > > > If you want to overwrite report's subsystems, reply with: > > > #syz set subsystems: new-subsystem > > > (See the list of subsystem names on the web dashboard) > > > > > > If the report is a duplicate of another one, reply with: > > > #syz dup: exact-subject-of-another-report > > > > > > If you want to undo deduplication, reply with: > > > #syz undup > > > > > > > I think this issue is triggered because of CONFIG_BPF_JIT_ALWAYS_ON is > > not set and /proc/sys/net/core/bpf_jit_enable is set to 1, causing the > > arch to attempt JIT the prog, but jit failed due to FAULT_INJECTION. > > > > When `bpf_jit_enable` set to 1, sets `fp->jit_requested = 1` to > > indicate need to jit when create BPF program. During runtime selection, > > set 'fp->bpf_func' to `__bpf_prog_ret0_warn` by default, and should > > return an error when prog need to jit(`jit_needed`) but not jited. > > > > Since CONFIG_BPF_JIT_ALWAYS_ON is not set and the BPF program contains > > no kfuncs, the `jit_needed` set to false. As a result, incorrectly > > treats the program as valid, when the program runs it calls > > `__bpf_prog_ret0_warn` and triggers the WARN_ON_ONCE(1). > > > > -- > > Thanks, > > kafai > > > > #syz test > > > > > > diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c > > index ba6b6118cf50..4c951d60bef5 100644 > > --- a/kernel/bpf/core.c > > +++ b/kernel/bpf/core.c > > @@ -2474,8 +2474,7 @@ struct bpf_prog *bpf_prog_select_runtime(struct > > bpf_prog *fp, int *err) > > if (fp->bpf_func) > > goto finalize; > > > > - if (IS_ENABLED(CONFIG_BPF_JIT_ALWAYS_ON) || > > - bpf_prog_has_kfunc_call(fp)) > > + if (fp->jit_requested || bpf_prog_has_kfunc_call(fp)) > > jit_needed = true; > > Not quite. > See the thread: > https://lore.kernel.org/bpf/CAADnVQJ6NKjhWbr=ya4=R7HaWyyiFneLLisByW3JopfQQYLrpg@mail.gmail.com/ > > I'm still waiting for somebody to send the patch. I'll send the patch. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] [bpf?] WARNING in __bpf_prog_ret0_warn 2025-05-23 14:47 ` KaFai Wan 2025-05-23 14:52 ` Alexei Starovoitov @ 2025-05-23 15:08 ` syzbot 1 sibling, 0 replies; 5+ messages in thread From: syzbot @ 2025-05-23 15:08 UTC (permalink / raw) To: andrii, ast, bpf, daniel, eddyz87, haoluo, john.fastabend, jolsa, kpsingh, linux-kernel, mannkafai, martin.lau, sdf, song, syzkaller-bugs, yonghong.song Hello, syzbot has tested the proposed patch and the reproducer did not trigger any issue: Reported-by: syzbot+0903f6d7f285e41cdf10@syzkaller.appspotmail.com Tested-by: syzbot+0903f6d7f285e41cdf10@syzkaller.appspotmail.com Tested on: commit: 94305e83 Merge tag 'pmdomain-v6.15-rc3' of git://git.k.. git tree: upstream console output: https://syzkaller.appspot.com/x/log.txt?x=113f45f4580000 kernel config: https://syzkaller.appspot.com/x/.config?x=89a6bdf3bbc4e852 dashboard link: https://syzkaller.appspot.com/bug?extid=0903f6d7f285e41cdf10 compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 patch: https://syzkaller.appspot.com/x/patch.diff?x=174f45f4580000 Note: testing is done by a robot and is best-effort only. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-05-26 13:31 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-05-04 3:47 [syzbot] [bpf?] WARNING in __bpf_prog_ret0_warn syzbot 2025-05-23 14:47 ` KaFai Wan 2025-05-23 14:52 ` Alexei Starovoitov 2025-05-26 13:31 ` Kafai Wan 2025-05-23 15:08 ` syzbot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox