[ 158.300791][ T1576] [ 158.300880][ T1576] ======================================================== [ 158.301006][ T1576] WARNING: possible irq lock inversion dependency detected [ 158.301122][ T1576] 7.1.0-rc5-virtme #1 Not tainted [ 158.301199][ T1576] -------------------------------------------------------- [ 158.301313][ T1576] sysctl/1576 just changed the state of lock: [ 158.301409][ T1576] ffffffff9337e8b8 (acaddr_hash_lock){+.+.}-{3:3}, at: __ipv6_dev_ac_dec+0x236/0x5d0 [ 158.301556][ T1576] but this lock was taken by another, SOFTIRQ-safe lock in the past: [ 158.301668][ T1576] (&ndev->lock){++--}-{3:3} [ 158.301671][ T1576] [ 158.301671][ T1576] [ 158.301671][ T1576] and interrupts could create inverse lock ordering between them. [ 158.301671][ T1576] [ 158.301961][ T1576] [ 158.301961][ T1576] other info that might help us debug this: [ 158.302076][ T1576] Possible interrupt unsafe locking scenario: [ 158.302076][ T1576] [ 158.302192][ T1576] CPU0 CPU1 [ 158.302267][ T1576] ---- ---- [ 158.302343][ T1576] lock(acaddr_hash_lock); [ 158.302421][ T1576] local_irq_disable(); [ 158.302519][ T1576] lock(&ndev->lock); [ 158.302616][ T1576] lock(acaddr_hash_lock); [ 158.302714][ T1576] [ 158.302774][ T1576] lock(&ndev->lock); [ 158.302835][ T1576] [ 158.302835][ T1576] *** DEADLOCK *** [ 158.302835][ T1576] [ 158.302955][ T1576] 2 locks held by sysctl/1576: [ 158.303033][ T1576] #0: ff1100000a3d43e0 (sb_writers#3){.+.+}-{0:0}, at: ksys_write+0x116/0x250 [ 158.303179][ T1576] #1: ffffffff9328c9c0 (rtnl_mutex){+.+.}-{4:4}, at: addrconf_fixup_forwarding+0x4d/0x4d0 [ 158.303340][ T1576] [ 158.303340][ T1576] the shortest dependencies between 2nd lock and 1st lock: [ 158.303474][ T1576] -> (&ndev->lock){++--}-{3:3} { [ 158.303554][ T1576] HARDIRQ-ON-W at: [ 158.303615][ T1576] __lock_acquire+0x378/0xc10 [ 158.303720][ T1576] lock_acquire.part.0+0xbc/0x260 [ 158.303817][ T1576] _raw_write_lock_bh+0x38/0x50 [ 158.303921][ T1576] addrconf_permanent_addr+0x108/0x9c0 [ 158.304042][ T1576] addrconf_notify+0x151/0xf30 [ 158.304137][ T1576] notifier_call_chain+0xb0/0x320 [ 158.304235][ T1576] __dev_notify_flags+0xde/0x280 [ 158.304333][ T1576] netif_change_flags+0xfe/0x190 [ 158.304431][ T1576] do_setlink.isra.0+0x1cc3/0x2750 [ 158.304531][ T1576] rtnl_newlink+0x8d1/0xef0 [ 158.304629][ T1576] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 158.304725][ T1576] netlink_rcv_skb+0x14e/0x3a0 [ 158.304824][ T1576] netlink_unicast+0x486/0x750 [ 158.304921][ T1576] netlink_sendmsg+0x735/0xc60 [ 158.305026][ T1576] ____sys_sendmsg+0x419/0x850 [ 158.305127][ T1576] ___sys_sendmsg+0x14e/0x1d0 [ 158.305227][ T1576] __sys_sendmsg+0x145/0x1f0 [ 158.305324][ T1576] do_syscall_64+0x117/0x590 [ 158.305423][ T1576] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 158.305548][ T1576] HARDIRQ-ON-R at: [ 158.305605][ T1576] __lock_acquire+0x378/0xc10 [ 158.305704][ T1576] lock_acquire.part.0+0xbc/0x260 [ 158.305803][ T1576] _raw_read_lock_bh+0x44/0x80 [ 158.305952][ T1576] inet6_fill_ifla6_attrs+0x1aee/0x21e0 [ 158.306071][ T1576] inet6_fill_link_af+0x5c/0xe0 [ 158.306171][ T1576] rtnl_fill_ifinfo.isra.0+0x1a45/0x2c20 [ 158.306330][ T1576] rtnl_getlink+0x9c9/0xeb0 [ 158.306427][ T1576] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 158.306522][ T1576] netlink_rcv_skb+0x14e/0x3a0 [ 158.306659][ T1576] netlink_unicast+0x486/0x750 [ 158.306759][ T1576] netlink_sendmsg+0x735/0xc60 [ 158.306858][ T1576] ____sys_sendmsg+0x419/0x850 [ 158.306962][ T1576] ___sys_sendmsg+0x14e/0x1d0 [ 158.307105][ T1576] __sys_sendmsg+0x145/0x1f0 [ 158.307201][ T1576] do_syscall_64+0x117/0x590 [ 158.307300][ T1576] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 158.307460][ T1576] IN-SOFTIRQ-W at: [ 158.307520][ T1576] __lock_acquire+0x378/0xc10 [ 158.307618][ T1576] lock_acquire.part.0+0xbc/0x260 [ 158.307757][ T1576] _raw_write_lock+0x33/0x40 [ 158.307855][ T1576] addrconf_rs_timer+0xb0/0x770 [ 158.307962][ T1576] call_timer_fn+0x163/0x4f0 [ 158.308102][ T1576] __run_timers+0x68f/0xab0 [ 158.308202][ T1576] run_timer_softirq+0xf0/0x160 [ 158.308301][ T1576] handle_softirqs+0x1d8/0x940 [ 158.308399][ T1576] __irq_exit_rcu+0x103/0x1c0 [ 158.308539][ T1576] irq_exit_rcu+0xe/0x30 [ 158.308635][ T1576] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 158.308751][ T1576] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 158.308907][ T1576] pv_native_safe_halt+0xf/0x10 [ 158.309009][ T1576] default_idle+0x9/0x10 [ 158.309106][ T1576] default_idle_call+0x6e/0xb0 [ 158.309203][ T1576] cpuidle_idle_call.constprop.0+0x237/0x410 [ 158.309319][ T1576] do_idle+0xf5/0x160 [ 158.309415][ T1576] cpu_startup_entry+0x53/0x70 [ 158.309552][ T1576] start_secondary+0x204/0x2b0 [ 158.309649][ T1576] common_startup_64+0x13e/0x148 [ 158.309749][ T1576] IN-SOFTIRQ-R at: [ 158.309847][ T1576] __lock_acquire+0x378/0xc10 [ 158.309951][ T1576] lock_acquire.part.0+0xbc/0x260 [ 158.310046][ T1576] _raw_read_lock_bh+0x44/0x80 [ 158.310142][ T1576] ipv6_get_lladdr+0xa8/0x3f0 [ 158.310242][ T1576] addrconf_rs_timer+0x251/0x770 [ 158.310338][ T1576] call_timer_fn+0x163/0x4f0 [ 158.310434][ T1576] __run_timers+0x68f/0xab0 [ 158.310572][ T1576] run_timer_softirq+0xf0/0x160 [ 158.310668][ T1576] handle_softirqs+0x1d8/0x940 [ 158.310766][ T1576] __irq_exit_rcu+0x103/0x1c0 [ 158.310906][ T1576] irq_exit_rcu+0xe/0x30 [ 158.311008][ T1576] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 158.311122][ T1576] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 158.311279][ T1576] pv_native_safe_halt+0xf/0x10 [ 158.311374][ T1576] default_idle+0x9/0x10 [ 158.311471][ T1576] default_idle_call+0x6e/0xb0 [ 158.311609][ T1576] cpuidle_idle_call.constprop.0+0x237/0x410 [ 158.311722][ T1576] do_idle+0xf5/0x160 [ 158.311818][ T1576] cpu_startup_entry+0x53/0x70 [ 158.311961][ T1576] start_secondary+0x204/0x2b0 [ 158.312059][ T1576] common_startup_64+0x13e/0x148 [ 158.312154][ T1576] INITIAL USE at: [ 158.312253][ T1576] __lock_acquire+0x378/0xc10 [ 158.312349][ T1576] lock_acquire.part.0+0xbc/0x260 [ 158.312444][ T1576] _raw_write_lock_bh+0x38/0x50 [ 158.312539][ T1576] addrconf_permanent_addr+0x108/0x9c0 [ 158.312695][ T1576] addrconf_notify+0x151/0xf30 [ 158.312791][ T1576] notifier_call_chain+0xb0/0x320 [ 158.312886][ T1576] __dev_notify_flags+0xde/0x280 [ 158.313034][ T1576] netif_change_flags+0xfe/0x190 [ 158.313130][ T1576] do_setlink.isra.0+0x1cc3/0x2750 [ 158.313227][ T1576] rtnl_newlink+0x8d1/0xef0 [ 158.313365][ T1576] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 158.313461][ T1576] netlink_rcv_skb+0x14e/0x3a0 [ 158.313557][ T1576] netlink_unicast+0x486/0x750 [ 158.313699][ T1576] netlink_sendmsg+0x735/0xc60 [ 158.313796][ T1576] ____sys_sendmsg+0x419/0x850 [ 158.313894][ T1576] ___sys_sendmsg+0x14e/0x1d0 [ 158.314041][ T1576] __sys_sendmsg+0x145/0x1f0 [ 158.314140][ T1576] do_syscall_64+0x117/0x590 [ 158.314237][ T1576] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 158.314398][ T1576] INITIAL READ USE at: [ 158.314480][ T1576] __lock_acquire+0x378/0xc10 [ 158.314581][ T1576] lock_acquire.part.0+0xbc/0x260 [ 158.314739][ T1576] _raw_read_lock_bh+0x44/0x80 [ 158.314837][ T1576] inet6_fill_ifla6_attrs+0x1aee/0x21e0 [ 158.314960][ T1576] inet6_fill_link_af+0x5c/0xe0 [ 158.315101][ T1576] rtnl_fill_ifinfo.isra.0+0x1a45/0x2c20 [ 158.315221][ T1576] rtnl_getlink+0x9c9/0xeb0 [ 158.315321][ T1576] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 158.315461][ T1576] netlink_rcv_skb+0x14e/0x3a0 [ 158.315561][ T1576] netlink_unicast+0x486/0x750 [ 158.315665][ T1576] netlink_sendmsg+0x735/0xc60 [ 158.315767][ T1576] ____sys_sendmsg+0x419/0x850 [ 158.315914][ T1576] ___sys_sendmsg+0x14e/0x1d0 [ 158.316022][ T1576] __sys_sendmsg+0x145/0x1f0 [ 158.316124][ T1576] do_syscall_64+0x117/0x590 [ 158.316270][ T1576] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 158.316389][ T1576] } [ 158.316433][ T1576] ... key at: [] __key.37+0x0/0x40 [ 158.316598][ T1576] ... acquired at: [ 158.316658][ T1576] __lock_acquire+0x508/0xc10 [ 158.316739][ T1576] lock_acquire.part.0+0xbc/0x260 [ 158.316819][ T1576] _raw_spin_lock+0x33/0x40 [ 158.316947][ T1576] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 158.317048][ T1576] __ipv6_dev_ac_inc+0x57e/0x930 [ 158.317128][ T1576] addrconf_join_anycast+0x1bc/0x260 [ 158.317208][ T1576] __ipv6_ifa_notify+0x75b/0xad0 [ 158.317328][ T1576] addrconf_dad_completed+0x14b/0xe10 [ 158.317408][ T1576] addrconf_dad_work+0x3c1/0x930 [ 158.317490][ T1576] process_one_work+0xdf8/0x1410 [ 158.317571][ T1576] worker_thread+0x4f1/0xd60 [ 158.317691][ T1576] kthread+0x367/0x460 [ 158.317752][ T1576] ret_from_fork+0x474/0x6b0 [ 158.317833][ T1576] ret_from_fork_asm+0x11/0x20 [ 158.317914][ T1576] [ 158.317959][ T1576] -> (acaddr_hash_lock){+.+.}-{3:3} { [ 158.318083][ T1576] HARDIRQ-ON-W at: [ 158.318146][ T1576] __lock_acquire+0x378/0xc10 [ 158.318246][ T1576] lock_acquire.part.0+0xbc/0x260 [ 158.318346][ T1576] _raw_spin_lock+0x33/0x40 [ 158.318487][ T1576] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 158.318606][ T1576] __ipv6_dev_ac_inc+0x57e/0x930 [ 158.318708][ T1576] addrconf_join_anycast+0x1bc/0x260 [ 158.318852][ T1576] __ipv6_ifa_notify+0x75b/0xad0 [ 158.318960][ T1576] addrconf_dad_completed+0x14b/0xe10 [ 158.319061][ T1576] addrconf_dad_work+0x3c1/0x930 [ 158.319203][ T1576] process_one_work+0xdf8/0x1410 [ 158.319303][ T1576] worker_thread+0x4f1/0xd60 [ 158.319404][ T1576] kthread+0x367/0x460 [ 158.319526][ T1576] ret_from_fork+0x474/0x6b0 [ 158.319627][ T1576] ret_from_fork_asm+0x11/0x20 [ 158.319727][ T1576] SOFTIRQ-ON-W at: [ 158.319788][ T1576] __lock_acquire+0x378/0xc10 [ 158.319930][ T1576] lock_acquire.part.0+0xbc/0x260 [ 158.320036][ T1576] _raw_spin_lock+0x33/0x40 [ 158.320139][ T1576] __ipv6_dev_ac_dec+0x236/0x5d0 [ 158.320281][ T1576] addrconf_leave_anycast+0x1bc/0x260 [ 158.320381][ T1576] dev_forward_change+0x3b3/0x850 [ 158.320483][ T1576] addrconf_fixup_forwarding+0x2af/0x4d0 [ 158.320650][ T1576] addrconf_sysctl_forward+0x209/0x2b0 [ 158.320751][ T1576] proc_sys_call_handler+0x31b/0x480 [ 158.320853][ T1576] new_sync_write+0x333/0x750 [ 158.321003][ T1576] vfs_write+0x6a4/0xc10 [ 158.321104][ T1576] ksys_write+0x116/0x250 [ 158.321205][ T1576] do_syscall_64+0x117/0x590 [ 158.321349][ T1576] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 158.321468][ T1576] INITIAL USE at: [ 158.321529][ T1576] __lock_acquire+0x378/0xc10 [ 158.321629][ T1576] lock_acquire.part.0+0xbc/0x260 [ 158.321771][ T1576] _raw_spin_lock+0x33/0x40 [ 158.321871][ T1576] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 158.322002][ T1576] __ipv6_dev_ac_inc+0x57e/0x930 [ 158.322144][ T1576] addrconf_join_anycast+0x1bc/0x260 [ 158.322245][ T1576] __ipv6_ifa_notify+0x75b/0xad0 [ 158.322344][ T1576] addrconf_dad_completed+0x14b/0xe10 [ 158.322488][ T1576] addrconf_dad_work+0x3c1/0x930 [ 158.322593][ T1576] process_one_work+0xdf8/0x1410 [ 158.322693][ T1576] worker_thread+0x4f1/0xd60 [ 158.322835][ T1576] kthread+0x367/0x460 [ 158.322916][ T1576] ret_from_fork+0x474/0x6b0 [ 158.323022][ T1576] ret_from_fork_asm+0x11/0x20 [ 158.323123][ T1576] } [ 158.323166][ T1576] ... key at: [] acaddr_hash_lock+0x18/0x45a0 [ 158.323288][ T1576] ... acquired at: [ 158.323347][ T1576] mark_lock+0x1d7/0xa00 [ 158.323427][ T1576] mark_usage+0x105/0x170 [ 158.323549][ T1576] __lock_acquire+0x378/0xc10 [ 158.323628][ T1576] lock_acquire.part.0+0xbc/0x260 [ 158.323708][ T1576] _raw_spin_lock+0x33/0x40 [ 158.323791][ T1576] __ipv6_dev_ac_dec+0x236/0x5d0 [ 158.323911][ T1576] addrconf_leave_anycast+0x1bc/0x260 [ 158.323995][ T1576] dev_forward_change+0x3b3/0x850 [ 158.324077][ T1576] addrconf_fixup_forwarding+0x2af/0x4d0 [ 158.324178][ T1576] addrconf_sysctl_forward+0x209/0x2b0 [ 158.324300][ T1576] proc_sys_call_handler+0x31b/0x480 [ 158.324382][ T1576] new_sync_write+0x333/0x750 [ 158.324463][ T1576] vfs_write+0x6a4/0xc10 [ 158.324543][ T1576] ksys_write+0x116/0x250 [ 158.324664][ T1576] do_syscall_64+0x117/0x590 [ 158.324744][ T1576] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 158.324843][ T1576] [ 158.324883][ T1576] [ 158.324883][ T1576] stack backtrace: [ 158.325030][ T1576] CPU: 2 UID: 0 PID: 1576 Comm: sysctl Not tainted 7.1.0-rc5-virtme #1 PREEMPT(full) [ 158.325033][ T1576] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 158.325035][ T1576] Call Trace: [ 158.325037][ T1576] [ 158.325038][ T1576] dump_stack_lvl+0x6f/0xa0 [ 158.325042][ T1576] print_irq_inversion_bug.part.0.cold+0xe6/0x143 [ 158.325045][ T1576] mark_lock_irq+0x989/0x9c0 [ 158.325048][ T1576] mark_lock+0x1d7/0xa00 [ 158.325050][ T1576] mark_usage+0x105/0x170 [ 158.325051][ T1576] __lock_acquire+0x378/0xc10 [ 158.325053][ T1576] lock_acquire.part.0+0xbc/0x260 [ 158.325054][ T1576] ? __ipv6_dev_ac_dec+0x236/0x5d0 [ 158.325056][ T1576] ? rcu_is_watching+0x15/0xd0 [ 158.325059][ T1576] ? do_raw_read_unlock+0x70/0x70 [ 158.325061][ T1576] ? lock_acquire+0x134/0x160 [ 158.325063][ T1576] _raw_spin_lock+0x33/0x40 [ 158.325064][ T1576] ? __ipv6_dev_ac_dec+0x236/0x5d0 [ 158.325066][ T1576] __ipv6_dev_ac_dec+0x236/0x5d0 [ 158.325068][ T1576] addrconf_leave_anycast+0x1bc/0x260 [ 158.325069][ T1576] ? find_held_lock+0x2b/0x80 [ 158.325072][ T1576] ? __ipv6_isatap_ifid+0x210/0x210 [ 158.325074][ T1576] ? mark_held_locks+0x40/0x70 [ 158.325076][ T1576] ? lockdep_hardirqs_on+0x8c/0x130 [ 158.325078][ T1576] dev_forward_change+0x3b3/0x850 [ 158.325080][ T1576] ? addrconf_fixup_forwarding+0x4d/0x4d0 [ 158.325082][ T1576] ? addrconf_sysctl_proxy_ndp+0x2f0/0x2f0 [ 158.325085][ T1576] addrconf_fixup_forwarding+0x2af/0x4d0 [ 158.325087][ T1576] addrconf_sysctl_forward+0x209/0x2b0 [ 158.325089][ T1576] ? addrconf_fixup_forwarding+0x4d0/0x4d0 [ 158.325091][ T1576] ? addrconf_fixup_forwarding+0x4d0/0x4d0 [ 158.325093][ T1576] ? __kvmalloc_node_noprof+0x305/0x8a0 [ 158.325097][ T1576] ? proc_sys_call_handler+0x25d/0x480 [ 158.325099][ T1576] proc_sys_call_handler+0x31b/0x480 [ 158.325101][ T1576] ? proc_sys_lookup+0x3d0/0x3d0 [ 158.325103][ T1576] ? rcu_read_unlock+0x1b/0x70 [ 158.325106][ T1576] ? do_raw_spin_unlock+0x59/0x250 [ 158.325107][ T1576] ? rcu_lockdep_current_cpu_online+0x39/0x1b0 [ 158.325109][ T1576] ? rcu_read_lock_any_held+0x3c/0x90 [ 158.325111][ T1576] ? proc_sys_call_handler+0x480/0x480 [ 158.325113][ T1576] new_sync_write+0x333/0x750 [ 158.325114][ T1576] ? __lock_acquire+0x508/0xc10 [ 158.325116][ T1576] ? new_sync_read+0x740/0x740 [ 158.325118][ T1576] ? lock_acquire.part.0+0xbc/0x260 [ 158.325119][ T1576] ? ksys_write+0x116/0x250 [ 158.325121][ T1576] vfs_write+0x6a4/0xc10 [ 158.325123][ T1576] ksys_write+0x116/0x250 [ 158.325124][ T1576] ? __ia32_sys_read+0xc0/0xc0 [ 158.325126][ T1576] ? rcu_is_watching+0x15/0xd0 [ 158.325127][ T1576] ? rcu_is_watching+0x15/0xd0 [ 158.325129][ T1576] do_syscall_64+0x117/0x590 [ 158.325131][ T1576] ? trace_hardirqs_off+0xd/0x30 [ 158.325134][ T1576] ? exc_page_fault+0xee/0x100 [ 158.325135][ T1576] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 158.325137][ T1576] RIP: 0033:0x7f4b229a108e [ 158.325140][ T1576] Code: 4d 89 d8 e8 94 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 c3 83 e2 39 83 fa 08 75 e7 e8 03 ff ff ff 0f 1f 00 f3 0f 1e fa [ 158.325142][ T1576] RSP: 002b:00007ffce28dd5f0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001 [ 158.325145][ T1576] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f4b229a108e [ 158.325146][ T1576] RDX: 0000000000000002 RSI: 000055685c9e74b0 RDI: 0000000000000005 [ 158.325147][ T1576] RBP: 00007ffce28dd600 R08: 0000000000000000 R09: 0000000000000000 [ 158.325148][ T1576] R10: 0000000000000000 R11: 0000000000000202 R12: 000055685c9e95e0 [ 158.325149][ T1576] R13: 000055685c9e7470 R14: 0000000000000002 R15: 0000000000000000 [ 158.325151][ T1576]