RE: [syzbot] WARNING: suspicious RCU usage in tcp_bpf_update_proto

From: John Fastabend
Date: Tue Apr 06 2021 - 14:21:48 EST


syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 514e1150 net: x25: Queue received packets in the drivers i..
> git tree: net-next
> console output: https://syzkaller.appspot.com/x/log.txt?x=112a8831d00000
> kernel config: https://syzkaller.appspot.com/x/.config?x=7eff0f22b8563a5f
> dashboard link: https://syzkaller.appspot.com/bug?extid=320a3bc8d80f478c37e4
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1532d711d00000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=15f44c5ed00000
>
> The issue was bisected to:
>
> commit 4dfe6bd94959222e18d512bdf15f6bf9edb9c27c
> Author: Rustam Kovhaev <rkovhaev@xxxxxxxxx>
> Date: Wed Feb 24 20:00:30 2021 +0000
>
> ntfs: check for valid standard information attribute
>
> bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=16207a81d00000
> final oops: https://syzkaller.appspot.com/x/report.txt?x=15207a81d00000
> console output: https://syzkaller.appspot.com/x/log.txt?x=11207a81d00000
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+320a3bc8d80f478c37e4@xxxxxxxxxxxxxxxxxxxxxxxxx
> Fixes: 4dfe6bd94959 ("ntfs: check for valid standard information attribute")
>
> =============================
> WARNING: suspicious RCU usage
> 5.12.0-rc4-syzkaller #0 Not tainted
> -----------------------------
> include/linux/skmsg.h:286 suspicious rcu_dereference_check() usage!
>
> other info that might help us debug this:
>
>
> rcu_scheduler_active = 2, debug_locks = 1
> 1 lock held by syz-executor383/8454:
> #0: ffff888013a99b48 (clock-AF_INET){++..}-{2:2}, at: sk_psock_drop+0x2c/0x460 net/core/skmsg.c:788
>
> stack backtrace:
> CPU: 1 PID: 8454 Comm: syz-executor383 Not tainted 5.12.0-rc4-syzkaller #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:79 [inline]
> dump_stack+0x141/0x1d7 lib/dump_stack.c:120
> sk_psock include/linux/skmsg.h:286 [inline]
> tcp_bpf_update_proto+0x530/0x5f0 net/ipv4/tcp_bpf.c:504
> sk_psock_restore_proto include/linux/skmsg.h:408 [inline]
> sk_psock_drop+0xdf/0x460 net/core/skmsg.c:789
> sk_psock_put include/linux/skmsg.h:446 [inline]
> tcp_bpf_recvmsg+0x42d/0x480 net/ipv4/tcp_bpf.c:208


The bisection is bogus, but we will get a fix for this ASAP. The real commit
is,

commit 8a59f9d1e3d4340659fdfee8879dc09a6f2546e1
Author: Cong Wang <cong.wang@xxxxxxxxxxxxx>
Date: Tue Mar 30 19:32:31 2021 -0700

sock: Introduce sk->sk_prot->psock_update_sk_prot()

Thanks,
John