[ 33.934357][ C1] [ 33.934443][ C1] ======================================================== [ 33.934565][ C1] WARNING: possible irq lock inversion dependency detected [ 33.934683][ C1] 7.1.0-rc5-virtme #1 Not tainted [ 33.934774][ C1] -------------------------------------------------------- [ 33.934905][ C1] swapper/1/0 just changed the state of lock: [ 33.935012][ C1] ff1100000d832578 (&ndev->lock){++-.}-{3:3}, at: addrconf_rs_timer+0xb0/0x770 [ 33.935162][ C1] but this lock took another, SOFTIRQ-unsafe lock in the past: [ 33.935291][ C1] (acaddr_hash_lock){+.+.}-{3:3} [ 33.935294][ C1] [ 33.935294][ C1] [ 33.935294][ C1] and interrupts could create inverse lock ordering between them. [ 33.935294][ C1] [ 33.935593][ C1] [ 33.935593][ C1] other info that might help us debug this: [ 33.935717][ C1] Possible interrupt unsafe locking scenario: [ 33.935717][ C1] [ 33.935840][ C1] CPU0 CPU1 [ 33.935921][ C1] ---- ---- [ 33.936002][ C1] lock(acaddr_hash_lock); [ 33.936084][ C1] local_irq_disable(); [ 33.936187][ C1] lock(&ndev->lock); [ 33.936289][ C1] lock(acaddr_hash_lock); [ 33.936390][ C1] [ 33.936451][ C1] lock(&ndev->lock); [ 33.936511][ C1] [ 33.936511][ C1] *** DEADLOCK *** [ 33.936511][ C1] [ 33.936631][ C1] 1 lock held by swapper/1/0: [ 33.936710][ C1] #0: ffa00000001d0c90 ((&ndev->rs_timer)){+.-.}-{0:0}, at: call_timer_fn+0x113/0x4f0 [ 33.936869][ C1] [ 33.936869][ C1] the shortest dependencies between 2nd lock and 1st lock: [ 33.937007][ C1] -> (acaddr_hash_lock){+.+.}-{3:3} { [ 33.937092][ C1] HARDIRQ-ON-W at: [ 33.937156][ C1] __lock_acquire+0x378/0xc10 [ 33.937264][ C1] lock_acquire.part.0+0xbc/0x260 [ 33.937367][ C1] _raw_spin_lock+0x33/0x40 [ 33.937471][ C1] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 33.937593][ C1] __ipv6_dev_ac_inc+0x57e/0x930 [ 33.937697][ C1] addrconf_join_anycast+0x1bc/0x260 [ 33.937797][ C1] __ipv6_ifa_notify+0x75b/0xad0 [ 33.937901][ C1] addrconf_dad_completed+0x14b/0xe10 [ 33.938026][ C1] addrconf_dad_work+0x3c1/0x930 [ 33.938131][ C1] process_one_work+0xdf8/0x1410 [ 33.938241][ C1] worker_thread+0x4f1/0xd60 [ 33.938343][ C1] kthread+0x367/0x460 [ 33.938444][ C1] ret_from_fork+0x474/0x6b0 [ 33.938547][ C1] ret_from_fork_asm+0x11/0x20 [ 33.938651][ C1] SOFTIRQ-ON-W at: [ 33.938714][ C1] __lock_acquire+0x378/0xc10 [ 33.938818][ C1] lock_acquire.part.0+0xbc/0x260 [ 33.938917][ C1] _raw_spin_lock+0x33/0x40 [ 33.939016][ C1] __ipv6_dev_ac_dec+0x236/0x5d0 [ 33.939116][ C1] addrconf_leave_anycast+0x1bc/0x260 [ 33.939248][ C1] dev_forward_change+0x3b3/0x850 [ 33.939352][ C1] addrconf_fixup_forwarding+0x2af/0x4d0 [ 33.939476][ C1] addrconf_sysctl_forward+0x209/0x2b0 [ 33.939602][ C1] proc_sys_call_handler+0x31b/0x480 [ 33.939705][ C1] new_sync_write+0x333/0x750 [ 33.939805][ C1] vfs_write+0x6a4/0xc10 [ 33.939905][ C1] ksys_write+0x116/0x250 [ 33.940004][ C1] do_syscall_64+0x117/0x590 [ 33.940105][ C1] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 33.940227][ C1] INITIAL USE at: [ 33.940288][ C1] __lock_acquire+0x378/0xc10 [ 33.940391][ C1] lock_acquire.part.0+0xbc/0x260 [ 33.940494][ C1] _raw_spin_lock+0x33/0x40 [ 33.940598][ C1] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 33.940727][ C1] __ipv6_dev_ac_inc+0x57e/0x930 [ 33.940828][ C1] addrconf_join_anycast+0x1bc/0x260 [ 33.940929][ C1] __ipv6_ifa_notify+0x75b/0xad0 [ 33.941029][ C1] addrconf_dad_completed+0x14b/0xe10 [ 33.941129][ C1] addrconf_dad_work+0x3c1/0x930 [ 33.941233][ C1] process_one_work+0xdf8/0x1410 [ 33.941332][ C1] worker_thread+0x4f1/0xd60 [ 33.941436][ C1] kthread+0x367/0x460 [ 33.941542][ C1] ret_from_fork+0x474/0x6b0 [ 33.941649][ C1] ret_from_fork_asm+0x11/0x20 [ 33.941748][ C1] } [ 33.941790][ C1] ... key at: [] acaddr_hash_lock+0x18/0x45a0 [ 33.941918][ C1] ... acquired at: [ 33.941977][ C1] __lock_acquire+0x508/0xc10 [ 33.942062][ C1] lock_acquire.part.0+0xbc/0x260 [ 33.942145][ C1] _raw_spin_lock+0x33/0x40 [ 33.942227][ C1] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 33.942329][ C1] __ipv6_dev_ac_inc+0x57e/0x930 [ 33.942415][ C1] addrconf_join_anycast+0x1bc/0x260 [ 33.942498][ C1] __ipv6_ifa_notify+0x75b/0xad0 [ 33.942578][ C1] addrconf_dad_completed+0x14b/0xe10 [ 33.942657][ C1] addrconf_dad_work+0x3c1/0x930 [ 33.942740][ C1] process_one_work+0xdf8/0x1410 [ 33.942823][ C1] worker_thread+0x4f1/0xd60 [ 33.942905][ C1] kthread+0x367/0x460 [ 33.942969][ C1] ret_from_fork+0x474/0x6b0 [ 33.943053][ C1] ret_from_fork_asm+0x11/0x20 [ 33.943133][ C1] [ 33.943174][ C1] -> (&ndev->lock){++-.}-{3:3} { [ 33.943258][ C1] HARDIRQ-ON-W at: [ 33.943319][ C1] __lock_acquire+0x378/0xc10 [ 33.943419][ C1] lock_acquire.part.0+0xbc/0x260 [ 33.943519][ C1] _raw_write_lock_bh+0x38/0x50 [ 33.943620][ C1] addrconf_permanent_addr+0x108/0x9c0 [ 33.943721][ C1] addrconf_notify+0x151/0xf30 [ 33.943823][ C1] notifier_call_chain+0xb0/0x320 [ 33.943927][ C1] __dev_notify_flags+0xde/0x280 [ 33.944032][ C1] netif_change_flags+0xfe/0x190 [ 33.944129][ C1] do_setlink.isra.0+0x1cc3/0x2750 [ 33.944230][ C1] rtnl_newlink+0x8d1/0xef0 [ 33.944328][ C1] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 33.944430][ C1] netlink_rcv_skb+0x14e/0x3a0 [ 33.944536][ C1] netlink_unicast+0x486/0x750 [ 33.944639][ C1] netlink_sendmsg+0x735/0xc60 [ 33.944743][ C1] ____sys_sendmsg+0x419/0x850 [ 33.944847][ C1] ___sys_sendmsg+0x14e/0x1d0 [ 33.944947][ C1] __sys_sendmsg+0x145/0x1f0 [ 33.945049][ C1] do_syscall_64+0x117/0x590 [ 33.945152][ C1] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 33.945275][ C1] HARDIRQ-ON-R at: [ 33.945334][ C1] __lock_acquire+0x378/0xc10 [ 33.945433][ C1] lock_acquire.part.0+0xbc/0x260 [ 33.945532][ C1] _raw_read_lock_bh+0x44/0x80 [ 33.945635][ C1] inet6_fill_ifla6_attrs+0x1aee/0x21e0 [ 33.945755][ C1] inet6_fill_link_af+0x5c/0xe0 [ 33.945854][ C1] rtnl_fill_ifinfo.isra.0+0x1a45/0x2c20 [ 33.945981][ C1] rtnl_getlink+0x9c9/0xeb0 [ 33.946085][ C1] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 33.946238][ C1] netlink_rcv_skb+0x14e/0x3a0 [ 33.946343][ C1] netlink_unicast+0x486/0x750 [ 33.946449][ C1] netlink_sendmsg+0x735/0xc60 [ 33.946596][ C1] ____sys_sendmsg+0x419/0x850 [ 33.946700][ C1] ___sys_sendmsg+0x14e/0x1d0 [ 33.946807][ C1] __sys_sendmsg+0x145/0x1f0 [ 33.946956][ C1] do_syscall_64+0x117/0x590 [ 33.947060][ C1] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 33.947192][ C1] IN-SOFTIRQ-W at: [ 33.947259][ C1] __lock_acquire+0x378/0xc10 [ 33.947409][ C1] lock_acquire.part.0+0xbc/0x260 [ 33.947513][ C1] _raw_write_lock+0x33/0x40 [ 33.947619][ C1] addrconf_rs_timer+0xb0/0x770 [ 33.947762][ C1] call_timer_fn+0x163/0x4f0 [ 33.947868][ C1] __run_timers+0x68f/0xab0 [ 33.947972][ C1] run_timer_softirq+0xf0/0x160 [ 33.948116][ C1] handle_softirqs+0x1d8/0x940 [ 33.948223][ C1] __irq_exit_rcu+0x103/0x1c0 [ 33.948323][ C1] irq_exit_rcu+0xe/0x30 [ 33.948466][ C1] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 33.948593][ C1] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 33.948718][ C1] pv_native_safe_halt+0xf/0x10 [ 33.948862][ C1] default_idle+0x9/0x10 [ 33.948968][ C1] default_idle_call+0x6e/0xb0 [ 33.949071][ C1] cpuidle_idle_call.constprop.0+0x237/0x410 [ 33.949245][ C1] do_idle+0xf5/0x160 [ 33.949329][ C1] cpu_startup_entry+0x53/0x70 [ 33.949431][ C1] start_secondary+0x204/0x2b0 [ 33.949576][ C1] common_startup_64+0x13e/0x148 [ 33.949677][ C1] INITIAL USE at: [ 33.949736][ C1] __lock_acquire+0x378/0xc10 [ 33.949835][ C1] lock_acquire.part.0+0xbc/0x260 [ 33.949977][ C1] _raw_write_lock_bh+0x38/0x50 [ 33.950082][ C1] addrconf_permanent_addr+0x108/0x9c0 [ 33.950180][ C1] addrconf_notify+0x151/0xf30 [ 33.950283][ C1] notifier_call_chain+0xb0/0x320 [ 33.950383][ C1] __dev_notify_flags+0xde/0x280 [ 33.950485][ C1] netif_change_flags+0xfe/0x190 [ 33.950629][ C1] do_setlink.isra.0+0x1cc3/0x2750 [ 33.950730][ C1] rtnl_newlink+0x8d1/0xef0 [ 33.950836][ C1] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 33.950946][ C1] netlink_rcv_skb+0x14e/0x3a0 [ 33.951092][ C1] netlink_unicast+0x486/0x750 [ 33.951193][ C1] netlink_sendmsg+0x735/0xc60 [ 33.951302][ C1] ____sys_sendmsg+0x419/0x850 [ 33.951402][ C1] ___sys_sendmsg+0x14e/0x1d0 [ 33.951507][ C1] __sys_sendmsg+0x145/0x1f0 [ 33.951607][ C1] do_syscall_64+0x117/0x590 [ 33.951751][ C1] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 33.951871][ C1] INITIAL READ USE at: [ 33.951930][ C1] __lock_acquire+0x378/0xc10 [ 33.952075][ C1] lock_acquire.part.0+0xbc/0x260 [ 33.952185][ C1] _raw_read_lock_bh+0x44/0x80 [ 33.952290][ C1] inet6_fill_ifla6_attrs+0x1aee/0x21e0 [ 33.952452][ C1] inet6_fill_link_af+0x5c/0xe0 [ 33.952552][ C1] rtnl_fill_ifinfo.isra.0+0x1a45/0x2c20 [ 33.952679][ C1] rtnl_getlink+0x9c9/0xeb0 [ 33.952829][ C1] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 33.952932][ C1] netlink_rcv_skb+0x14e/0x3a0 [ 33.953041][ C1] netlink_unicast+0x486/0x750 [ 33.953144][ C1] netlink_sendmsg+0x735/0xc60 [ 33.953298][ C1] ____sys_sendmsg+0x419/0x850 [ 33.953396][ C1] ___sys_sendmsg+0x14e/0x1d0 [ 33.953496][ C1] __sys_sendmsg+0x145/0x1f0 [ 33.953638][ C1] do_syscall_64+0x117/0x590 [ 33.953736][ C1] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 33.953856][ C1] } [ 33.953940][ C1] ... key at: [] __key.37+0x0/0x40 [ 33.954067][ C1] ... acquired at: [ 33.954126][ C1] mark_lock+0x1d7/0xa00 [ 33.954211][ C1] mark_usage+0x42/0x170 [ 33.954331][ C1] __lock_acquire+0x378/0xc10 [ 33.954413][ C1] lock_acquire.part.0+0xbc/0x260 [ 33.954491][ C1] _raw_write_lock+0x33/0x40 [ 33.954569][ C1] addrconf_rs_timer+0xb0/0x770 [ 33.954691][ C1] call_timer_fn+0x163/0x4f0 [ 33.954770][ C1] __run_timers+0x68f/0xab0 [ 33.954849][ C1] run_timer_softirq+0xf0/0x160 [ 33.954937][ C1] handle_softirqs+0x1d8/0x940 [ 33.955058][ C1] __irq_exit_rcu+0x103/0x1c0 [ 33.955142][ C1] irq_exit_rcu+0xe/0x30 [ 33.955232][ C1] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 33.955331][ C1] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 33.955471][ C1] pv_native_safe_halt+0xf/0x10 [ 33.955549][ C1] default_idle+0x9/0x10 [ 33.955632][ C1] default_idle_call+0x6e/0xb0 [ 33.955710][ C1] cpuidle_idle_call.constprop.0+0x237/0x410 [ 33.955849][ C1] do_idle+0xf5/0x160 [ 33.955908][ C1] cpu_startup_entry+0x53/0x70 [ 33.955995][ C1] start_secondary+0x204/0x2b0 [ 33.956072][ C1] common_startup_64+0x13e/0x148 [ 33.956193][ C1] [ 33.956236][ C1] [ 33.956236][ C1] stack backtrace: [ 33.956336][ C1] CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Not tainted 7.1.0-rc5-virtme #1 PREEMPT(full) [ 33.956339][ C1] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 33.956341][ C1] Call Trace: [ 33.956342][ C1] [ 33.956344][ C1] dump_stack_lvl+0x6f/0xa0 [ 33.956348][ C1] print_irq_inversion_bug.part.0.cold+0xe6/0x143 [ 33.956351][ C1] mark_lock_irq+0x989/0x9c0 [ 33.956353][ C1] mark_lock+0x1d7/0xa00 [ 33.956355][ C1] mark_usage+0x42/0x170 [ 33.956357][ C1] __lock_acquire+0x378/0xc10 [ 33.956358][ C1] ? add_chain_cache+0x12d/0x570 [ 33.956360][ C1] lock_acquire.part.0+0xbc/0x260 [ 33.956361][ C1] ? addrconf_rs_timer+0xb0/0x770 [ 33.956363][ C1] ? rcu_is_watching+0x15/0xd0 [ 33.956366][ C1] ? lock_acquire+0x134/0x160 [ 33.956368][ C1] ? ipv6_get_lladdr+0x3f0/0x3f0 [ 33.956370][ C1] _raw_write_lock+0x33/0x40 [ 33.956371][ C1] ? addrconf_rs_timer+0xb0/0x770 [ 33.956373][ C1] addrconf_rs_timer+0xb0/0x770 [ 33.956375][ C1] ? lock_acquire.part.0+0xbc/0x260 [ 33.956376][ C1] ? ipv6_get_lladdr+0x3f0/0x3f0 [ 33.956378][ C1] ? lock_acquire+0x134/0x160 [ 33.956380][ C1] ? ipv6_get_lladdr+0x3f0/0x3f0 [ 33.956381][ C1] call_timer_fn+0x163/0x4f0 [ 33.956383][ C1] ? detach_if_pending+0x1d0/0x1d0 [ 33.956385][ C1] ? debug_object_active_state+0x430/0x430 [ 33.956388][ C1] ? find_held_lock+0x2b/0x80 [ 33.956391][ C1] ? __lock_release.isra.0+0x6b/0x1a0 [ 33.956392][ C1] ? rcu_is_watching+0x15/0xd0 [ 33.956394][ C1] __run_timers+0x68f/0xab0 [ 33.956396][ C1] ? ipv6_get_lladdr+0x3f0/0x3f0 [ 33.956398][ C1] ? __bpf_trace_itimer_expire+0x10/0x10 [ 33.956400][ C1] ? __lock_acquire+0x508/0xc10 [ 33.956402][ C1] ? __rwlock_init+0x150/0x150 [ 33.956404][ C1] run_timer_softirq+0xf0/0x160 [ 33.956406][ C1] ? __run_timers+0xab0/0xab0 [ 33.956407][ C1] ? handle_softirqs+0x1a0/0x940 [ 33.956409][ C1] ? rcu_is_watching+0x15/0xd0 [ 33.956410][ C1] handle_softirqs+0x1d8/0x940 [ 33.956412][ C1] ? find_held_lock+0x2b/0x80 [ 33.956414][ C1] ? __lock_release.isra.0+0x6b/0x1a0 [ 33.956415][ C1] ? _local_bh_enable+0xd0/0xd0 [ 33.956417][ C1] __irq_exit_rcu+0x103/0x1c0 [ 33.956419][ C1] irq_exit_rcu+0xe/0x30 [ 33.956420][ C1] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 33.956422][ C1] [ 33.956422][ C1] [ 33.956423][ C1] ? rcu_is_watching+0x15/0xd0 [ 33.956424][ C1] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 33.956426][ C1] RIP: 0010:pv_native_safe_halt+0xf/0x10 [ 33.956428][ C1] Code: 48 8b 3d 44 93 00 02 e8 1f 00 00 00 48 2b 05 c8 31 a3 00 c3 0f 1f 80 00 00 00 00 f3 0f 1e fa eb 07 0f 00 2d 43 b4 22 00 fb f4 0f 1f 40 d6 48 83 ec 20 8b 17 49 89 f8 83 e2 fe 41 89 d2 0f 01 [ 33.956430][ C1] RSP: 0018:ffa0000000147de8 EFLAGS: 00000296 [ 33.956432][ C1] RAX: 0000000000113f07 RBX: ff11000001bb2340 RCX: ffffffff92ed9667 [ 33.956433][ C1] RDX: ff11000001bb2340 RSI: ffffffff95c0221d RDI: ffffffff9566f6c0 [ 33.956434][ C1] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 [ 33.956435][ C1] R10: 0000000000000001 R11: 0000000000000001 R12: 1ff4000000028fc0 [ 33.956435][ C1] R13: 0000000000000000 R14: dffffc0000000000 R15: 0000000000000000 [ 33.956437][ C1] ? cpuidle_idle_call.constprop.0+0x237/0x410 [ 33.956439][ C1] ? lockdep_hardirqs_on+0x8c/0x130 [ 33.956440][ C1] default_idle+0x9/0x10 [ 33.956442][ C1] default_idle_call+0x6e/0xb0 [ 33.956444][ C1] cpuidle_idle_call.constprop.0+0x237/0x410 [ 33.956445][ C1] ? arch_cpu_idle_exit+0x40/0x40 [ 33.956447][ C1] ? mark_tsc_async_resets+0x30/0x30 [ 33.956448][ C1] ? trace_irq_enable.constprop.0+0x9b/0x180 [ 33.956451][ C1] ? rcu_is_watching+0x15/0xd0 [ 33.956453][ C1] do_idle+0xf5/0x160 [ 33.956455][ C1] cpu_startup_entry+0x53/0x70 [ 33.956456][ C1] start_secondary+0x204/0x2b0 [ 33.956457][ C1] ? set_cpu_sibling_map+0x1fb0/0x1fb0 [ 33.956459][ C1] common_startup_64+0x13e/0x148 [ 33.956462][ C1]