====================================================== WARNING: possible circular locking dependency detected 4.13.0-rc6-next-20170823+ #7 Not tainted ------------------------------------------------------ kworker/1:3/5383 is trying to acquire lock: ((delayed_fput_work).work){+.+.}, at: [] process_one_work+0xb2c/0x1be0 kernel/workqueue.c:2094 but now in release context of a crosslock acquired at the following: ((complete)&rcu.completion){+.+.}, at: [] __synchronize_srcu+0x1b5/0x250 kernel/rcu/srcutree.c:898 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #5 ((complete)&rcu.completion){+.+.}: check_prevs_add kernel/locking/lockdep.c:2020 [inline] validate_chain kernel/locking/lockdep.c:2469 [inline] __lock_acquire+0x3286/0x4620 kernel/locking/lockdep.c:3498 lock_acquire+0x1d5/0x580 kernel/locking/lockdep.c:4002 complete_acquire include/linux/completion.h:39 [inline] __wait_for_common kernel/sched/completion.c:108 [inline] wait_for_common kernel/sched/completion.c:122 [inline] wait_for_completion+0xc8/0x770 kernel/sched/completion.c:143 __synchronize_srcu+0x1b5/0x250 kernel/rcu/srcutree.c:898 synchronize_srcu_expedited kernel/rcu/srcutree.c:923 [inline] synchronize_srcu+0x1a3/0x560 kernel/rcu/srcutree.c:974 quarantine_remove_cache+0xd7/0xf0 mm/kasan/quarantine.c:327 kasan_cache_shrink+0x9/0x10 mm/kasan/kasan.c:380 kmem_cache_shrink+0x15/0x30 mm/slab_common.c:857 acpi_os_purge_cache+0x15/0x20 drivers/acpi/osl.c:1560 acpi_purge_cached_objects+0x38/0xc9 drivers/acpi/acpica/utxface.c:271 acpi_initialize_objects+0xc5/0x112 drivers/acpi/acpica/utxfinit.c:302 acpi_bus_init drivers/acpi/bus.c:1131 [inline] acpi_init+0x23c/0x8e6 drivers/acpi/bus.c:1220 do_one_initcall+0x9e/0x330 init/main.c:825 do_initcall_level init/main.c:891 [inline] do_initcalls init/main.c:899 [inline] do_basic_setup init/main.c:917 [inline] kernel_init_freeable+0x46e/0x526 init/main.c:1067 kernel_init+0x13/0x172 init/main.c:992 ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:431 -> #4 (cpu_hotplug_lock.rw_sem){++++}: check_prevs_add kernel/locking/lockdep.c:2020 [inline] validate_chain kernel/locking/lockdep.c:2469 [inline] __lock_acquire+0x3286/0x4620 kernel/locking/lockdep.c:3498 lock_acquire+0x1d5/0x580 kernel/locking/lockdep.c:4002 percpu_down_read_preempt_disable include/linux/percpu-rwsem.h:35 [inline] percpu_down_read include/linux/percpu-rwsem.h:58 [inline] cpus_read_lock+0x42/0x90 kernel/cpu.c:218 get_online_cpus include/linux/cpu.h:126 [inline] kmem_cache_create+0x26/0x2a0 mm/slab_common.c:431 bio_find_or_create_slab block/bio.c:115 [inline] bioset_create+0x42c/0x850 block/bio.c:1981 init_bio+0x193/0x1b6 block/bio.c:2125 do_one_initcall+0x9e/0x330 init/main.c:825 do_initcall_level init/main.c:891 [inline] do_initcalls init/main.c:899 [inline] do_basic_setup init/main.c:917 [inline] kernel_init_freeable+0x46e/0x526 init/main.c:1067 kernel_init+0x13/0x172 init/main.c:992 ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:431 -> #3 (bio_slab_lock){+.+.}: check_prevs_add kernel/locking/lockdep.c:2020 [inline] validate_chain kernel/locking/lockdep.c:2469 [inline] __lock_acquire+0x3286/0x4620 kernel/locking/lockdep.c:3498 lock_acquire+0x1d5/0x580 kernel/locking/lockdep.c:4002 __mutex_lock_common kernel/locking/mutex.c:756 [inline] __mutex_lock+0x16f/0x1870 kernel/locking/mutex.c:893 mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:908 bio_find_or_create_slab block/bio.c:80 [inline] bioset_create+0x261/0x850 block/bio.c:1981 blk_alloc_queue_node+0x139/0xba0 block/blk-core.c:826 blk_mq_init_queue+0x46/0x90 block/blk-mq.c:2264 loop_add+0x2f0/0x990 drivers/block/loop.c:1796 loop_init+0x1ae/0x20a drivers/block/loop.c:2056 do_one_initcall+0x9e/0x330 init/main.c:825 do_initcall_level init/main.c:891 [inline] do_initcalls init/main.c:899 [inline] do_basic_setup init/main.c:917 [inline] kernel_init_freeable+0x46e/0x526 init/main.c:1067 kernel_init+0x13/0x172 init/main.c:992 ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:431 -> #2 (loop_index_mutex){+.+.}: check_prevs_add kernel/locking/lockdep.c:2020 [inline] validate_chain kernel/locking/lockdep.c:2469 [inline] __lock_acquire+0x3286/0x4620 kernel/locking/lockdep.c:3498 lock_acquire+0x1d5/0x580 kernel/locking/lockdep.c:4002 __mutex_lock_common kernel/locking/mutex.c:756 [inline] __mutex_lock+0x16f/0x1870 kernel/locking/mutex.c:893 mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:908 lo_open+0x1b/0xa0 drivers/block/loop.c:1586 __blkdev_get+0x2cd/0xf60 fs/block_dev.c:1463 blkdev_get+0x3a1/0xad0 fs/block_dev.c:1600 blkdev_open+0x1ff/0x2c0 fs/block_dev.c:1756 do_dentry_open+0x67f/0xd70 fs/open.c:752 vfs_open+0x107/0x220 fs/open.c:866 do_last fs/namei.c:3388 [inline] path_openat+0x1157/0x3520 fs/namei.c:3528 do_filp_open+0x25b/0x3b0 fs/namei.c:3563 do_sys_open+0x502/0x6d0 fs/open.c:1059 SYSC_open fs/open.c:1077 [inline] SyS_open+0x2d/0x40 fs/open.c:1072 entry_SYSCALL_64_fastpath+0x1f/0xbe -> #1 (&bdev->bd_mutex){+.+.}: check_prevs_add kernel/locking/lockdep.c:2020 [inline] validate_chain kernel/locking/lockdep.c:2469 [inline] __lock_acquire+0x3286/0x4620 kernel/locking/lockdep.c:3498 lock_acquire+0x1d5/0x580 kernel/locking/lockdep.c:4002 __mutex_lock_common kernel/locking/mutex.c:756 [inline] __mutex_lock+0x16f/0x1870 kernel/locking/mutex.c:893 mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:908 blkdev_put+0x2a/0x4f0 fs/block_dev.c:1800 blkdev_close+0x91/0xc0 fs/block_dev.c:1849 __fput+0x333/0x7f0 fs/file_table.c:210 delayed_fput+0x44/0x70 fs/file_table.c:240 process_one_work+0xbfd/0x1be0 kernel/workqueue.c:2098 worker_thread+0x223/0x1860 kernel/workqueue.c:2233 kthread+0x39c/0x470 kernel/kthread.c:231 ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:431 -> #0 ((delayed_fput_work).work){+.+.}: process_one_work+0xba5/0x1be0 kernel/workqueue.c:2095 worker_thread+0x223/0x1860 kernel/workqueue.c:2233 kthread+0x39c/0x470 kernel/kthread.c:231 ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:431 0xffffffffffffffff other info that might help us debug this: Chain exists of: (delayed_fput_work).work --> cpu_hotplug_lock.rw_sem --> (complete)&rcu.completion Possible unsafe locking scenario by crosslock: CPU0 CPU1 ---- ---- lock(cpu_hotplug_lock.rw_sem); lock((complete)&rcu.completion); lock((delayed_fput_work).work); unlock((complete)&rcu.completion); *** DEADLOCK *** 3 locks held by kworker/1:3/5383: #0: ("events_power_efficient"){.+.+}, at: [] __write_once_size include/linux/compiler.h:305 [inline] #0: ("events_power_efficient"){.+.+}, at: [] atomic64_set arch/x86/include/asm/atomic64_64.h:33 [inline] #0: ("events_power_efficient"){.+.+}, at: [] atomic_long_set include/asm-generic/atomic-long.h:56 [inline] #0: ("events_power_efficient"){.+.+}, at: [] set_work_data kernel/workqueue.c:617 [inline] #0: ("events_power_efficient"){.+.+}, at: [] set_work_pool_and_clear_pending kernel/workqueue.c:644 [inline] #0: ("events_power_efficient"){.+.+}, at: [] process_one_work+0xad4/0x1be0 kernel/workqueue.c:2090 #1: ((&(&sdp->work)->work)){+.+.}, at: [] process_one_work+0xb2c/0x1be0 kernel/workqueue.c:2094 #2: (&x->wait#5){....}, at: [] complete+0x18/0x80 kernel/sched/completion.c:34 stack backtrace: CPU: 1 PID: 5383 Comm: kworker/1:3 Not tainted 4.13.0-rc6-next-20170823+ #7 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: events_power_efficient srcu_invoke_callbacks Call Trace: __dump_stack lib/dump_stack.c:16 [inline] dump_stack+0x194/0x257 lib/dump_stack.c:52 print_circular_bug+0x503/0x710 kernel/locking/lockdep.c:1259 check_prev_add+0x865/0x1520 kernel/locking/lockdep.c:1894 commit_xhlock kernel/locking/lockdep.c:5002 [inline] commit_xhlocks kernel/locking/lockdep.c:5046 [inline] lock_commit_crosslock+0xe73/0x1d10 kernel/locking/lockdep.c:5085 complete_release_commit include/linux/completion.h:49 [inline] complete+0x24/0x80 kernel/sched/completion.c:39 wakeme_after_rcu+0xd/0x10 kernel/rcu/update.c:376 srcu_invoke_callbacks+0x280/0x4d0 kernel/rcu/srcutree.c:1161 process_one_work+0xbfd/0x1be0 kernel/workqueue.c:2098 worker_thread+0x223/0x1860 kernel/workqueue.c:2233 kthread+0x39c/0x470 kernel/kthread.c:231 ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:431 device syz3 entered promiscuous mode device syz3 left promiscuous mode device syz3 entered promiscuous mode device syz3 left promiscuous mode device syz3 entered promiscuous mode device syz3 left promiscuous mode device syz3 entered promiscuous mode device syz7 entered promiscuous mode device syz3 left promiscuous mode device syz7 left promiscuous mode device syz3 entered promiscuous mode device syz2 entered promiscuous mode device syz7 entered promiscuous mode device syz3 left promiscuous mode device syz2 left promiscuous mode device syz3 entered promiscuous mode device syz2 entered promiscuous mode device syz7 left promiscuous mode device syz7 entered promiscuous mode device syz7 left promiscuous mode device syz7 entered promiscuous mode device syz0 entered promiscuous mode device syz5 entered promiscuous mode device syz1 entered promiscuous mode device syz0 left promiscuous mode device syz0 entered promiscuous mode device syz4 entered promiscuous mode device syz5 left promiscuous mode device syz1 left promiscuous mode device syz5 entered promiscuous mode device syz1 entered promiscuous mode device syz4 left promiscuous mode device syz4 entered promiscuous mode syz-executor4 uses obsolete (PF_INET,SOCK_PACKET) sctp: [Deprecated]: syz-executor0 (pid 6590) Use of int in maxseg socket option. Use struct sctp_assoc_value instead SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=6599 comm=syz-executor0 sctp: [Deprecated]: syz-executor2 (pid 6634) Use of int in maxseg socket option. Use struct sctp_assoc_value instead sctp: [Deprecated]: syz-executor1 (pid 6635) Use of int in maxseg socket option. Use struct sctp_assoc_value instead sctp: [Deprecated]: syz-executor0 (pid 6643) Use of int in maxseg socket option. Use struct sctp_assoc_value instead SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=6644 comm=syz-executor1 sctp: [Deprecated]: syz-executor2 (pid 6652) Use of int in maxseg socket option. Use struct sctp_assoc_value instead SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=6651 comm=syz-executor0 sctp: [Deprecated]: syz-executor2 (pid 6689) Use of int in maxseg socket option. Use struct sctp_assoc_value instead sctp: [Deprecated]: syz-executor2 (pid 6694) Use of int in maxseg socket option. Use struct sctp_assoc_value instead sctp: [Deprecated]: syz-executor3 (pid 6698) Use of int in maxseg socket option. Use struct sctp_assoc_value instead SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=6699 comm=syz-executor3 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=6694 comm=syz-executor2 kvm: vcpu 4: requested 68374 ns lapic timer period limited to 500000 ns kvm: vcpu 4: requested 68374 ns lapic timer period limited to 500000 ns kvm: vcpu 4: requested 68374 ns lapic timer period limited to 500000 ns kvm: vcpu 4: requested 68374 ns lapic timer period limited to 500000 ns kvm: vcpu 4: requested 68374 ns lapic timer period limited to 500000 ns kvm: vcpu 4: requested 68374 ns lapic timer period limited to 500000 ns kvm: vcpu 4: requested 68374 ns lapic timer period limited to 500000 ns SELinux: failure in selinux_parse_skb(), unable to parse packet SELinux: failure in selinux_parse_skb(), unable to parse packet SELinux: failure in selinux_parse_skb(), unable to parse packet SELinux: failure in selinux_parse_skb(), unable to parse packet SELinux: failure in selinux_parse_skb(), unable to parse packet SELinux: failure in selinux_parse_skb(), unable to parse packet SELinux: failure in selinux_parse_skb(), unable to parse packet kauditd_printk_skb: 7 callbacks suppressed audit: type=1326 audit(1503485561.292:63): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=kernel pid=7449 comm="syz-executor3" exe="/root/syz-executor3" sig=31 arch=c000003e syscall=202 compat=0 ip=0x4512e9 code=0xffff0000 capability: warning: `syz-executor7' uses deprecated v2 capabilities in a way that may be insecure audit: type=1326 audit(1503485561.377:64): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=kernel pid=7449 comm="syz-executor3" exe="/root/syz-executor3" sig=9 arch=c000003e syscall=202 compat=0 ip=0x4512e9 code=0x0 audit: type=1326 audit(1503485561.399:65): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=kernel pid=7463 comm="syz-executor0" exe="/root/syz-executor0" sig=31 arch=c000003e syscall=202 compat=0 ip=0x4512e9 code=0xffff0000 audit: type=1326 audit(1503485561.448:66): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=kernel pid=7467 comm="syz-executor3" exe="/root/syz-executor3" sig=31 arch=c000003e syscall=202 compat=0 ip=0x4512e9 code=0xffff0000 audit: type=1326 audit(1503485561.512:67): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=kernel pid=7467 comm="syz-executor3" exe="/root/syz-executor3" sig=31 arch=c000003e syscall=202 compat=0 ip=0x4512e9 code=0xffff0000 audit: type=1326 audit(1503485561.512:68): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=kernel pid=7467 comm="syz-executor3" exe="/root/syz-executor3" sig=9 arch=c000003e syscall=202 compat=0 ip=0x4512e9 code=0x0 audit: type=1326 audit(1503485561.789:69): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=kernel pid=7491 comm="syz-executor0" exe="/root/syz-executor0" sig=31 arch=c000003e syscall=202 compat=0 ip=0x4512e9 code=0xffff0000 audit: type=1326 audit(1503485562.082:70): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=kernel pid=7596 comm="syz-executor3" exe="/root/syz-executor3" sig=31 arch=c000003e syscall=202 compat=0 ip=0x4512e9 code=0xffff0000 audit: type=1326 audit(1503485562.118:71): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=kernel pid=7603 comm="syz-executor2" exe="/root/syz-executor2" sig=31 arch=c000003e syscall=202 compat=0 ip=0x4512e9 code=0xffff0000 TCP: request_sock_TCP: Possible SYN flooding on port 20016. Sending cookies. Check SNMP counters. TCP: request_sock_TCP: Possible SYN flooding on port 20016. Sending cookies. Check SNMP counters.