bisecting fixing commit since db1892238c55c5138801f131a837ccd0056f002e building syzkaller on f3f7d9c8c3dfa1406a5f5a5f5f45a351f533139f testing commit db1892238c55c5138801f131a837ccd0056f002e with gcc (GCC) 8.1.0 kernel signature: 429f2aca85a186960b05221e02f48ba45a00f1c2 run #0: crashed: possible deadlock in pie_timer run #1: crashed: possible deadlock in del_timer_sync run #2: crashed: possible deadlock in del_timer_sync run #3: crashed: possible deadlock in del_timer_sync run #4: crashed: possible deadlock in del_timer_sync run #5: crashed: possible deadlock in del_timer_sync run #6: crashed: possible deadlock in del_timer_sync run #7: crashed: possible deadlock in del_timer_sync run #8: crashed: possible deadlock in del_timer_sync run #9: crashed: possible deadlock in del_timer_sync testing current HEAD b0cdffaa546e24acf92ab3b0d4e917a51aff6a82 testing commit b0cdffaa546e24acf92ab3b0d4e917a51aff6a82 with gcc (GCC) 8.1.0 kernel signature: 872d364f45ebafcd82afc58e303e428753261f2d all runs: crashed: possible deadlock in del_timer_sync revisions tested: 2, total time: 37m0.159861168s (build: 15m35.067303915s, test: 20m36.281239107s) the crash still happens on HEAD commit msg: Linux 4.14.163 crash: possible deadlock in del_timer_sync bond0 (unregistering): Releasing backup interface bond_slave_1 bond0 (unregistering): Releasing backup interface bond_slave_0 bond0 (unregistering): Released all slaves IPVS: ftp: loaded support on port[0] = 21 ====================================================== WARNING: possible circular locking dependency detected 4.14.163-syzkaller #0 Not tainted ------------------------------------------------------ syz-executor845/28598 is trying to acquire lock: (((&q->adapt_timer))){+.-.}, at: [] arch_local_irq_disable arch/x86/include/asm/paravirt.h:784 [inline] (((&q->adapt_timer))){+.-.}, at: [] arch_local_irq_save arch/x86/include/asm/paravirt.h:797 [inline] (((&q->adapt_timer))){+.-.}, at: [] del_timer_sync+0x76/0x1e0 kernel/time/timer.c:1234 but task is already holding lock: (&qdisc_rx_lock){+.-.}, at: [] spin_lock_bh include/linux/spinlock.h:322 [inline] (&qdisc_rx_lock){+.-.}, at: [] sch_tree_lock include/net/sch_generic.h:360 [inline] (&qdisc_rx_lock){+.-.}, at: [] sfb_change+0x1a3/0xa20 net/sched/sch_sfb.c:521 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (&qdisc_rx_lock){+.-.}: lock_acquire+0x173/0x400 kernel/locking/lockdep.c:3994 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x2d/0x40 kernel/locking/spinlock.c:152 spin_lock include/linux/spinlock.h:317 [inline] pie_timer+0x6b/0x620 net/sched/sch_pie.c:431 call_timer_fn+0x142/0x570 kernel/time/timer.c:1279 expire_timers kernel/time/timer.c:1318 [inline] __run_timers kernel/time/timer.c:1636 [inline] run_timer_softirq+0xc99/0x1210 kernel/time/timer.c:1649 __do_softirq+0x246/0x9b0 kernel/softirq.c:288 invoke_softirq kernel/softirq.c:368 [inline] irq_exit+0x15f/0x1a0 kernel/softirq.c:409 exiting_irq arch/x86/include/asm/apic.h:648 [inline] smp_apic_timer_interrupt+0x149/0x5d0 arch/x86/kernel/apic/apic.c:1102 apic_timer_interrupt+0x96/0xa0 arch/x86/entry/entry_64.S:792 arch_local_irq_restore arch/x86/include/asm/paravirt.h:779 [inline] console_unlock+0x90d/0xe30 kernel/printk/printk.c:2405 vprintk_emit+0x1b4/0x4e0 kernel/printk/printk.c:1923 vprintk_default+0x1a/0x20 kernel/printk/printk.c:1963 vprintk_func+0x49/0x12c kernel/printk/printk_safe.c:401 printk+0x91/0xab kernel/printk/printk.c:1996 __netdev_printk.cold.167+0xc8/0x130 net/core/dev.c:8576 netdev_info+0xbd/0xe0 net/core/dev.c:8623 bond_enslave+0x16a7/0x4a80 drivers/net/bonding/bond_main.c:1744 do_set_master+0x163/0x1f0 net/core/rtnetlink.c:1961 do_setlink+0x9dd/0x2c50 net/core/rtnetlink.c:2098 rtnl_newlink+0xe0c/0x1390 net/core/rtnetlink.c:2651 rtnetlink_rcv_msg+0x34f/0x9d0 net/core/rtnetlink.c:4306 netlink_rcv_skb+0x133/0x370 net/netlink/af_netlink.c:2432 rtnetlink_rcv+0x10/0x20 net/core/rtnetlink.c:4318 netlink_unicast_kernel net/netlink/af_netlink.c:1286 [inline] netlink_unicast+0x40d/0x5f0 net/netlink/af_netlink.c:1312 netlink_sendmsg+0x730/0xbd0 net/netlink/af_netlink.c:1877 sock_sendmsg_nosec net/socket.c:646 [inline] sock_sendmsg+0xb5/0xf0 net/socket.c:656 SYSC_sendto+0x1e3/0x2c0 net/socket.c:1763 SyS_sendto+0x9/0x10 net/socket.c:1731 do_syscall_64+0x1c7/0x5b0 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x42/0xb7 -> #0 (((&q->adapt_timer))){+.-.}: check_prev_add kernel/locking/lockdep.c:1901 [inline] check_prevs_add kernel/locking/lockdep.c:2018 [inline] validate_chain kernel/locking/lockdep.c:2460 [inline] __lock_acquire+0x2e94/0x4500 kernel/locking/lockdep.c:3487 lock_acquire+0x173/0x400 kernel/locking/lockdep.c:3994 del_timer_sync+0xa2/0x1e0 kernel/time/timer.c:1235 pie_destroy+0x42/0x50 net/sched/sch_pie.c:534 qdisc_destroy+0x123/0x2d0 net/sched/sch_generic.c:725 sfb_change+0x261/0xa20 net/sched/sch_sfb.c:525 qdisc_change net/sched/sch_api.c:1144 [inline] tc_modify_qdisc+0xb55/0x13eb net/sched/sch_api.c:1410 rtnetlink_rcv_msg+0x34f/0x9d0 net/core/rtnetlink.c:4306 netlink_rcv_skb+0x133/0x370 net/netlink/af_netlink.c:2432 rtnetlink_rcv+0x10/0x20 net/core/rtnetlink.c:4318 netlink_unicast_kernel net/netlink/af_netlink.c:1286 [inline] netlink_unicast+0x40d/0x5f0 net/netlink/af_netlink.c:1312 netlink_sendmsg+0x730/0xbd0 net/netlink/af_netlink.c:1877 sock_sendmsg_nosec net/socket.c:646 [inline] sock_sendmsg+0xb5/0xf0 net/socket.c:656 ___sys_sendmsg+0x625/0x920 net/socket.c:2062 __sys_sendmsg+0xc1/0x140 net/socket.c:2096 SYSC_sendmsg net/socket.c:2107 [inline] SyS_sendmsg+0xd/0x20 net/socket.c:2103 do_syscall_64+0x1c7/0x5b0 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x42/0xb7 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&qdisc_rx_lock); lock(((&q->adapt_timer))); lock(&qdisc_rx_lock); lock(((&q->adapt_timer))); *** DEADLOCK *** 2 locks held by syz-executor845/28598: #0: (rtnl_mutex){+.+.}, at: [] rtnl_lock net/core/rtnetlink.c:72 [inline] #0: (rtnl_mutex){+.+.}, at: [] rtnetlink_rcv_msg+0x2c1/0x9d0 net/core/rtnetlink.c:4301 #1: (&qdisc_rx_lock){+.-.}, at: [] spin_lock_bh include/linux/spinlock.h:322 [inline] #1: (&qdisc_rx_lock){+.-.}, at: [] sch_tree_lock include/net/sch_generic.h:360 [inline] #1: (&qdisc_rx_lock){+.-.}, at: [] sfb_change+0x1a3/0xa20 net/sched/sch_sfb.c:521 stack backtrace: CPU: 1 PID: 28598 Comm: syz-executor845 Not tainted 4.14.163-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:17 [inline] dump_stack+0xf7/0x13b lib/dump_stack.c:58 print_circular_bug.isra.40.cold.67+0x1bd/0x27d kernel/locking/lockdep.c:1258 check_prev_add kernel/locking/lockdep.c:1901 [inline] check_prevs_add kernel/locking/lockdep.c:2018 [inline] validate_chain kernel/locking/lockdep.c:2460 [inline] __lock_acquire+0x2e94/0x4500 kernel/locking/lockdep.c:3487 lock_acquire+0x173/0x400 kernel/locking/lockdep.c:3994 del_timer_sync+0xa2/0x1e0 kernel/time/timer.c:1235 pie_destroy+0x42/0x50 net/sched/sch_pie.c:534 qdisc_destroy+0x123/0x2d0 net/sched/sch_generic.c:725 sfb_change+0x261/0xa20 net/sched/sch_sfb.c:525 qdisc_change net/sched/sch_api.c:1144 [inline] tc_modify_qdisc+0xb55/0x13eb net/sched/sch_api.c:1410 rtnetlink_rcv_msg+0x34f/0x9d0 net/core/rtnetlink.c:4306 netlink_rcv_skb+0x133/0x370 net/netlink/af_netlink.c:2432 rtnetlink_rcv+0x10/0x20 net/core/rtnetlink.c:4318 netlink_unicast_kernel net/netlink/af_netlink.c:1286 [inline] netlink_unicast+0x40d/0x5f0 net/netlink/af_netlink.c:1312 netlink_sendmsg+0x730/0xbd0 net/netlink/af_netlink.c:1877 sock_sendmsg_nosec net/socket.c:646 [inline] sock_sendmsg+0xb5/0xf0 net/socket.c:656 ___sys_sendmsg+0x625/0x920 net/socket.c:2062 __sys_sendmsg+0xc1/0x140 net/socket.c:2096 SYSC_sendmsg net/socket.c:2107 [inline] SyS_sendmsg+0xd/0x20 net/socket.c:2103 do_syscall_64+0x1c7/0x5b0 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x42/0xb7 RIP: 0033:0x446cd9 RSP: 002b:00007fa52861edb8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e RAX: ffffffffffffffda RBX: 00000000006dbc58 RCX: 0000000000446cd9 RDX: 0000000000000000 RSI: 0000000020000240 RDI: 0000000000000005 RBP: 00000000006dbc50 R08: 0000000000000028 R09: 0000000000000000 R10: 0000000000000002 R11: 0000000000000246 R12: 00000000006dbc5c R13: 00007ffef019cfaf R14: 00007fa52861f9c0 R15: 0000000000000001