syzbot


WARNING: suspicious RCU usage in llc_sap_close

Status: fixed on 2019/12/16 09:09
Reported-by: syzbot+6b9b636988037b8d1f60@syzkaller.appspotmail.com
Fix commit: 9a484516a410 llc: avoid blocking in llc_sap_close()
First crash: 1999d, last: 1843d
Fix bisection: fixed by (bisect log) :
commit 9a484516a4105fcc01a21b321d06f5f0b8588242
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date: Tue Sep 11 18:42:06 2018 +0000

  llc: avoid blocking in llc_sap_close()

  

Sample crash report:
=============================
WARNING: suspicious RCU usage
4.19.62 #36 Not tainted
-----------------------------
kernel/rcu/tree_plugin.h:811 Illegal synchronize_rcu() in RCU read-side critical section!

other info that might help us debug this:


rcu_scheduler_active = 2, debug_locks = 1
1 lock held by ksoftirqd/0/9:
 #0: 000000006536d6dd (rcu_read_lock){....}, at: __skb_unlink include/linux/skbuff.h:1885 [inline]
 #0: 000000006536d6dd (rcu_read_lock){....}, at: __skb_dequeue include/linux/skbuff.h:1901 [inline]
 #0: 000000006536d6dd (rcu_read_lock){....}, at: process_backlog+0x1c9/0x7a0 net/core/dev.c:5853

stack backtrace:
CPU: 0 PID: 9 Comm: ksoftirqd/0 Not tainted 4.19.62 #36
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x172/0x1f0 lib/dump_stack.c:113
 lockdep_rcu_suspicious+0x153/0x15d kernel/locking/lockdep.c:4536
 synchronize_rcu+0x72/0xa0 kernel/rcu/tree_plugin.h:811
 llc_sap_close+0x148/0x1a0 net/llc/llc_core.c:130
 llc_sap_put include/net/llc.h:129 [inline]
 llc_rcv+0x617/0xb40 net/llc/llc_input.c:210
 __netif_receive_skb_one_core+0x113/0x1a0 net/core/dev.c:4932
 __netif_receive_skb+0x2c/0x1d0 net/core/dev.c:5044
 process_backlog+0x23a/0x7a0 net/core/dev.c:5855
 napi_poll net/core/dev.c:6278 [inline]
 net_rx_action+0x4f5/0x1070 net/core/dev.c:6344
 __do_softirq+0x25c/0x921 kernel/softirq.c:292
 run_ksoftirqd kernel/softirq.c:653 [inline]
 run_ksoftirqd+0x8e/0x110 kernel/softirq.c:645
 smpboot_thread_fn+0x6a3/0xa30 kernel/smpboot.c:164
 kthread+0x354/0x420 kernel/kthread.c:246
 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415
BUG: sleeping function called from invalid context at kernel/sched/completion.c:99
in_atomic(): 1, irqs_disabled(): 0, pid: 9, name: ksoftirqd/0
1 lock held by ksoftirqd/0/9:
 #0: 000000006536d6dd (rcu_read_lock){....}, at: __skb_unlink include/linux/skbuff.h:1885 [inline]
 #0: 000000006536d6dd (rcu_read_lock){....}, at: __skb_dequeue include/linux/skbuff.h:1901 [inline]
 #0: 000000006536d6dd (rcu_read_lock){....}, at: process_backlog+0x1c9/0x7a0 net/core/dev.c:5853
Preemption disabled at:
[<ffffffff872000f3>] __do_softirq+0xf3/0x921 kernel/softirq.c:269
CPU: 0 PID: 9 Comm: ksoftirqd/0 Not tainted 4.19.62 #36
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x172/0x1f0 lib/dump_stack.c:113
 ___might_sleep.cold+0x1bd/0x1f6 kernel/sched/core.c:6150
 __might_sleep+0x95/0x190 kernel/sched/core.c:6103
 __wait_for_common kernel/sched/completion.c:99 [inline]
 wait_for_common kernel/sched/completion.c:115 [inline]
 wait_for_completion+0x96/0x440 kernel/sched/completion.c:136
 __wait_rcu_gp+0x23d/0x300 kernel/rcu/update.c:368
 synchronize_rcu.part.0+0xcf/0xe0 kernel/rcu/tree_plugin.h:820
 synchronize_rcu+0x27/0xa0 kernel/rcu/tree_plugin.h:821
 llc_sap_close+0x148/0x1a0 net/llc/llc_core.c:130
 llc_sap_put include/net/llc.h:129 [inline]
 llc_rcv+0x617/0xb40 net/llc/llc_input.c:210
 __netif_receive_skb_one_core+0x113/0x1a0 net/core/dev.c:4932
 __netif_receive_skb+0x2c/0x1d0 net/core/dev.c:5044
 process_backlog+0x23a/0x7a0 net/core/dev.c:5855
 napi_poll net/core/dev.c:6278 [inline]
 net_rx_action+0x4f5/0x1070 net/core/dev.c:6344
 __do_softirq+0x25c/0x921 kernel/softirq.c:292
 run_ksoftirqd kernel/softirq.c:653 [inline]
 run_ksoftirqd+0x8e/0x110 kernel/softirq.c:645
 smpboot_thread_fn+0x6a3/0xa30 kernel/smpboot.c:164
 kthread+0x354/0x420 kernel/kthread.c:246
 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415
BUG: scheduling while atomic: ksoftirqd/0/9/0x00000101
1 lock held by ksoftirqd/0/9:
 #0: 000000006536d6dd (rcu_read_lock){....}, at: __skb_unlink include/linux/skbuff.h:1885 [inline]
 #0: 000000006536d6dd (rcu_read_lock){....}, at: __skb_dequeue include/linux/skbuff.h:1901 [inline]
 #0: 000000006536d6dd (rcu_read_lock){....}, at: process_backlog+0x1c9/0x7a0 net/core/dev.c:5853
Modules linked in:
Preemption disabled at:
[<ffffffff872000f3>] __do_softirq+0xf3/0x921 kernel/softirq.c:269

Crashes (10):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/07/30 12:36 linux-4.19.y 64f4694072aa f28bf2a5 .config console log report syz C ci2-linux-4-19
2019/06/08 11:09 linux-4.19.y e109a984cf38 0159583c .config console log report syz ci2-linux-4-19
2019/06/04 17:24 linux-4.19.y e109a984cf38 e41a20c5 .config console log report syz ci2-linux-4-19
2019/11/07 12:49 linux-4.19.y 5ee93551c703 d797d201 .config console log report ci2-linux-4-19
2019/11/04 06:32 linux-4.19.y ef244c308885 b35fad31 .config console log report ci2-linux-4-19
2019/11/01 05:53 linux-4.19.y ef244c308885 a41ca8fa .config console log report ci2-linux-4-19
2019/07/30 11:52 linux-4.19.y 64f4694072aa f28bf2a5 .config console log report ci2-linux-4-19
2019/06/29 07:42 linux-4.19.y aec3002d07fd 7509bf36 .config console log report ci2-linux-4-19
2019/06/08 09:41 linux-4.19.y e109a984cf38 0159583c .config console log report ci2-linux-4-19
2019/06/04 17:01 linux-4.19.y e109a984cf38 e41a20c5 .config console log report ci2-linux-4-19
* Struck through repros no longer work on HEAD.