[ 232.484693][ T3968] [ 232.484781][ T3968] ======================================================== [ 232.484913][ T3968] WARNING: possible irq lock inversion dependency detected [ 232.485038][ T3968] 7.1.0-rc5-virtme #1 Not tainted [ 232.485122][ T3968] -------------------------------------------------------- [ 232.485251][ T3968] sysctl/3968 just changed the state of lock: [ 232.485372][ T3968] ffffffff91b7e8b8 (acaddr_hash_lock){+.+.}-{3:3}, at: __ipv6_dev_ac_dec+0x236/0x5d0 [ 232.485541][ T3968] but this lock was taken by another, SOFTIRQ-safe lock in the past: [ 232.485663][ T3968] (&ndev->lock){++--}-{3:3} [ 232.485666][ T3968] [ 232.485666][ T3968] [ 232.485666][ T3968] and interrupts could create inverse lock ordering between them. [ 232.485666][ T3968] [ 232.485981][ T3968] [ 232.485981][ T3968] other info that might help us debug this: [ 232.486107][ T3968] Possible interrupt unsafe locking scenario: [ 232.486107][ T3968] [ 232.486237][ T3968] CPU0 CPU1 [ 232.486325][ T3968] ---- ---- [ 232.486418][ T3968] lock(acaddr_hash_lock); [ 232.486506][ T3968] local_irq_disable(); [ 232.486609][ T3968] lock(&ndev->lock); [ 232.486718][ T3968] lock(acaddr_hash_lock); [ 232.486821][ T3968] [ 232.486884][ T3968] lock(&ndev->lock); [ 232.486947][ T3968] [ 232.486947][ T3968] *** DEADLOCK *** [ 232.486947][ T3968] [ 232.487075][ T3968] 2 locks held by sysctl/3968: [ 232.487162][ T3968] #0: ff1100000a0743e0 (sb_writers#3){.+.+}-{0:0}, at: ksys_write+0x116/0x250 [ 232.487312][ T3968] #1: ffffffff91a8c9c0 (rtnl_mutex){+.+.}-{4:4}, at: addrconf_fixup_forwarding+0x4d/0x4d0 [ 232.487482][ T3968] [ 232.487482][ T3968] the shortest dependencies between 2nd lock and 1st lock: [ 232.487623][ T3968] -> (&ndev->lock){++--}-{3:3} { [ 232.487709][ T3968] HARDIRQ-ON-W at: [ 232.487778][ T3968] __lock_acquire+0x378/0xc10 [ 232.487886][ T3968] lock_acquire.part.0+0xbc/0x260 [ 232.487991][ T3968] _raw_write_lock_bh+0x38/0x50 [ 232.488095][ T3968] addrconf_permanent_addr+0x108/0x9c0 [ 232.488217][ T3968] addrconf_notify+0x151/0xf30 [ 232.488320][ T3968] notifier_call_chain+0xb0/0x320 [ 232.488431][ T3968] __dev_notify_flags+0xde/0x280 [ 232.488534][ T3968] netif_change_flags+0xfe/0x190 [ 232.488636][ T3968] do_setlink.isra.0+0x1cc3/0x2750 [ 232.488739][ T3968] rtnl_newlink+0x8d1/0xef0 [ 232.488840][ T3968] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 232.488943][ T3968] netlink_rcv_skb+0x14e/0x3a0 [ 232.489046][ T3968] netlink_unicast+0x486/0x750 [ 232.489155][ T3968] netlink_sendmsg+0x735/0xc60 [ 232.489258][ T3968] ____sys_sendmsg+0x419/0x850 [ 232.489364][ T3968] ___sys_sendmsg+0x14e/0x1d0 [ 232.489473][ T3968] __sys_sendmsg+0x145/0x1f0 [ 232.489576][ T3968] do_syscall_64+0x117/0x590 [ 232.489681][ T3968] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 232.489804][ T3968] HARDIRQ-ON-R at: [ 232.489867][ T3968] __lock_acquire+0x378/0xc10 [ 232.489973][ T3968] lock_acquire.part.0+0xbc/0x260 [ 232.490077][ T3968] _raw_read_lock_bh+0x44/0x80 [ 232.490183][ T3968] inet6_fill_ifla6_attrs+0x1aee/0x21e0 [ 232.490308][ T3968] inet6_fill_link_af+0x5c/0xe0 [ 232.490417][ T3968] rtnl_fill_ifinfo.isra.0+0x1a45/0x2c20 [ 232.490540][ T3968] rtnl_getlink+0x9c9/0xeb0 [ 232.490642][ T3968] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 232.490754][ T3968] netlink_rcv_skb+0x14e/0x3a0 [ 232.490857][ T3968] netlink_unicast+0x486/0x750 [ 232.490959][ T3968] netlink_sendmsg+0x735/0xc60 [ 232.491068][ T3968] ____sys_sendmsg+0x419/0x850 [ 232.491172][ T3968] ___sys_sendmsg+0x14e/0x1d0 [ 232.491279][ T3968] __sys_sendmsg+0x145/0x1f0 [ 232.491393][ T3968] do_syscall_64+0x117/0x590 [ 232.491497][ T3968] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 232.491619][ T3968] IN-SOFTIRQ-W at: [ 232.491683][ T3968] __lock_acquire+0x378/0xc10 [ 232.491787][ T3968] lock_acquire.part.0+0xbc/0x260 [ 232.491892][ T3968] _raw_write_lock+0x33/0x40 [ 232.491995][ T3968] addrconf_rs_timer+0xb0/0x770 [ 232.492099][ T3968] call_timer_fn+0x163/0x4f0 [ 232.492209][ T3968] __run_timers+0x68f/0xab0 [ 232.492323][ T3968] run_timer_softirq+0xf0/0x160 [ 232.492441][ T3968] handle_softirqs+0x1d8/0x940 [ 232.492545][ T3968] __irq_exit_rcu+0x103/0x1c0 [ 232.492648][ T3968] irq_exit_rcu+0xe/0x30 [ 232.492750][ T3968] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 232.492880][ T3968] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 232.493004][ T3968] pv_native_safe_halt+0xf/0x10 [ 232.493111][ T3968] default_idle+0x9/0x10 [ 232.493219][ T3968] default_idle_call+0x6e/0xb0 [ 232.493330][ T3968] cpuidle_idle_call.constprop.0+0x237/0x410 [ 232.493459][ T3968] do_idle+0xf5/0x160 [ 232.493561][ T3968] cpu_startup_entry+0x53/0x70 [ 232.493665][ T3968] rest_init+0x1f7/0x200 [ 232.493768][ T3968] start_kernel+0x3ad/0x3b0 [ 232.493871][ T3968] x86_64_start_reservations+0x24/0x30 [ 232.493994][ T3968] x86_64_start_kernel+0x12b/0x130 [ 232.494097][ T3968] common_startup_64+0x13e/0x148 [ 232.494207][ T3968] IN-SOFTIRQ-R at: [ 232.494269][ T3968] __lock_acquire+0x378/0xc10 [ 232.494372][ T3968] lock_acquire.part.0+0xbc/0x260 [ 232.494477][ T3968] _raw_read_lock_bh+0x44/0x80 [ 232.494580][ T3968] ipv6_get_lladdr+0xa8/0x3f0 [ 232.494685][ T3968] addrconf_rs_timer+0x251/0x770 [ 232.494797][ T3968] call_timer_fn+0x163/0x4f0 [ 232.494898][ T3968] __run_timers+0x68f/0xab0 [ 232.495002][ T3968] run_timer_softirq+0xf0/0x160 [ 232.495103][ T3968] handle_softirqs+0x1d8/0x940 [ 232.495212][ T3968] __irq_exit_rcu+0x103/0x1c0 [ 232.495318][ T3968] irq_exit_rcu+0xe/0x30 [ 232.495425][ T3968] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 232.495546][ T3968] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 232.495670][ T3968] pv_native_safe_halt+0xf/0x10 [ 232.495772][ T3968] default_idle+0x9/0x10 [ 232.495877][ T3968] default_idle_call+0x6e/0xb0 [ 232.495981][ T3968] cpuidle_idle_call.constprop.0+0x237/0x410 [ 232.496103][ T3968] do_idle+0xf5/0x160 [ 232.496206][ T3968] cpu_startup_entry+0x53/0x70 [ 232.496313][ T3968] rest_init+0x1f7/0x200 [ 232.496424][ T3968] start_kernel+0x3ad/0x3b0 [ 232.496526][ T3968] x86_64_start_reservations+0x24/0x30 [ 232.496649][ T3968] x86_64_start_kernel+0x12b/0x130 [ 232.496759][ T3968] common_startup_64+0x13e/0x148 [ 232.496860][ T3968] INITIAL USE at: [ 232.496922][ T3968] __lock_acquire+0x378/0xc10 [ 232.497026][ T3968] lock_acquire.part.0+0xbc/0x260 [ 232.497129][ T3968] _raw_write_lock_bh+0x38/0x50 [ 232.497240][ T3968] addrconf_permanent_addr+0x108/0x9c0 [ 232.497372][ T3968] addrconf_notify+0x151/0xf30 [ 232.497478][ T3968] notifier_call_chain+0xb0/0x320 [ 232.497582][ T3968] __dev_notify_flags+0xde/0x280 [ 232.497699][ T3968] netif_change_flags+0xfe/0x190 [ 232.497801][ T3968] do_setlink.isra.0+0x1cc3/0x2750 [ 232.497904][ T3968] rtnl_newlink+0x8d1/0xef0 [ 232.498012][ T3968] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 232.498116][ T3968] netlink_rcv_skb+0x14e/0x3a0 [ 232.498220][ T3968] netlink_unicast+0x486/0x750 [ 232.498324][ T3968] netlink_sendmsg+0x735/0xc60 [ 232.498432][ T3968] ____sys_sendmsg+0x419/0x850 [ 232.498535][ T3968] ___sys_sendmsg+0x14e/0x1d0 [ 232.498636][ T3968] __sys_sendmsg+0x145/0x1f0 [ 232.498739][ T3968] do_syscall_64+0x117/0x590 [ 232.498842][ T3968] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 232.498964][ T3968] INITIAL READ USE at: [ 232.499049][ T3968] __lock_acquire+0x378/0xc10 [ 232.499152][ T3968] lock_acquire.part.0+0xbc/0x260 [ 232.499276][ T3968] _raw_read_lock_bh+0x44/0x80 [ 232.499384][ T3968] inet6_fill_ifla6_attrs+0x1aee/0x21e0 [ 232.499510][ T3968] inet6_fill_link_af+0x5c/0xe0 [ 232.499611][ T3968] rtnl_fill_ifinfo.isra.0+0x1a45/0x2c20 [ 232.499736][ T3968] rtnl_getlink+0x9c9/0xeb0 [ 232.499838][ T3968] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 232.499943][ T3968] netlink_rcv_skb+0x14e/0x3a0 [ 232.500046][ T3968] netlink_unicast+0x486/0x750 [ 232.500149][ T3968] netlink_sendmsg+0x735/0xc60 [ 232.500253][ T3968] ____sys_sendmsg+0x419/0x850 [ 232.500358][ T3968] ___sys_sendmsg+0x14e/0x1d0 [ 232.500472][ T3968] __sys_sendmsg+0x145/0x1f0 [ 232.500573][ T3968] do_syscall_64+0x117/0x590 [ 232.500675][ T3968] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 232.500810][ T3968] } [ 232.500853][ T3968] ... key at: [] __key.37+0x0/0x40 [ 232.500977][ T3968] ... acquired at: [ 232.501038][ T3968] __lock_acquire+0x508/0xc10 [ 232.501120][ T3968] lock_acquire.part.0+0xbc/0x260 [ 232.501202][ T3968] _raw_spin_lock+0x33/0x40 [ 232.501330][ T3968] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 232.501436][ T3968] __ipv6_dev_ac_inc+0x57e/0x930 [ 232.501517][ T3968] addrconf_join_anycast+0x1bc/0x260 [ 232.501642][ T3968] __ipv6_ifa_notify+0x75b/0xad0 [ 232.501729][ T3968] addrconf_dad_completed+0x14b/0xe10 [ 232.501811][ T3968] addrconf_dad_work+0x3c1/0x930 [ 232.501892][ T3968] process_one_work+0xdf8/0x1410 [ 232.502024][ T3968] worker_thread+0x4f1/0xd60 [ 232.502106][ T3968] kthread+0x367/0x460 [ 232.502168][ T3968] ret_from_fork+0x474/0x6b0 [ 232.502252][ T3968] ret_from_fork_asm+0x11/0x20 [ 232.502337][ T3968] [ 232.502426][ T3968] -> (acaddr_hash_lock){+.+.}-{3:3} { [ 232.502510][ T3968] HARDIRQ-ON-W at: [ 232.502573][ T3968] __lock_acquire+0x378/0xc10 [ 232.502677][ T3968] lock_acquire.part.0+0xbc/0x260 [ 232.502825][ T3968] _raw_spin_lock+0x33/0x40 [ 232.502936][ T3968] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 232.503057][ T3968] __ipv6_dev_ac_inc+0x57e/0x930 [ 232.503206][ T3968] addrconf_join_anycast+0x1bc/0x260 [ 232.503310][ T3968] __ipv6_ifa_notify+0x75b/0xad0 [ 232.503415][ T3968] addrconf_dad_completed+0x14b/0xe10 [ 232.503564][ T3968] addrconf_dad_work+0x3c1/0x930 [ 232.503666][ T3968] process_one_work+0xdf8/0x1410 [ 232.503768][ T3968] worker_thread+0x4f1/0xd60 [ 232.503919][ T3968] kthread+0x367/0x460 [ 232.504009][ T3968] ret_from_fork+0x474/0x6b0 [ 232.504117][ T3968] ret_from_fork_asm+0x11/0x20 [ 232.504225][ T3968] SOFTIRQ-ON-W at: [ 232.504335][ T3968] __lock_acquire+0x378/0xc10 [ 232.504442][ T3968] lock_acquire.part.0+0xbc/0x260 [ 232.504544][ T3968] _raw_spin_lock+0x33/0x40 [ 232.504690][ T3968] __ipv6_dev_ac_dec+0x236/0x5d0 [ 232.504806][ T3968] addrconf_leave_anycast+0x1bc/0x260 [ 232.504909][ T3968] dev_forward_change+0x3b3/0x850 [ 232.505016][ T3968] addrconf_fixup_forwarding+0x2af/0x4d0 [ 232.505180][ T3968] addrconf_sysctl_forward+0x209/0x2b0 [ 232.505283][ T3968] proc_sys_call_handler+0x31b/0x480 [ 232.505389][ T3968] new_sync_write+0x333/0x750 [ 232.505540][ T3968] vfs_write+0x6a4/0xc10 [ 232.505642][ T3968] ksys_write+0x116/0x250 [ 232.505743][ T3968] do_syscall_64+0x117/0x590 [ 232.505889][ T3968] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 232.506014][ T3968] INITIAL USE at: [ 232.506076][ T3968] __lock_acquire+0x378/0xc10 [ 232.506222][ T3968] lock_acquire.part.0+0xbc/0x260 [ 232.506326][ T3968] _raw_spin_lock+0x33/0x40 [ 232.506438][ T3968] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 232.506602][ T3968] __ipv6_dev_ac_inc+0x57e/0x930 [ 232.506704][ T3968] addrconf_join_anycast+0x1bc/0x260 [ 232.506807][ T3968] __ipv6_ifa_notify+0x75b/0xad0 [ 232.506951][ T3968] addrconf_dad_completed+0x14b/0xe10 [ 232.507051][ T3968] addrconf_dad_work+0x3c1/0x930 [ 232.507152][ T3968] process_one_work+0xdf8/0x1410 [ 232.507255][ T3968] worker_thread+0x4f1/0xd60 [ 232.507408][ T3968] kthread+0x367/0x460 [ 232.507491][ T3968] ret_from_fork+0x474/0x6b0 [ 232.507598][ T3968] ret_from_fork_asm+0x11/0x20 [ 232.507748][ T3968] } [ 232.507789][ T3968] ... key at: [] acaddr_hash_lock+0x18/0x45a0 [ 232.507911][ T3968] ... acquired at: [ 232.507971][ T3968] mark_lock+0x1d7/0xa00 [ 232.508097][ T3968] mark_usage+0x105/0x170 [ 232.508180][ T3968] __lock_acquire+0x378/0xc10 [ 232.508262][ T3968] lock_acquire.part.0+0xbc/0x260 [ 232.508344][ T3968] _raw_spin_lock+0x33/0x40 [ 232.508471][ T3968] __ipv6_dev_ac_dec+0x236/0x5d0 [ 232.508557][ T3968] addrconf_leave_anycast+0x1bc/0x260 [ 232.508639][ T3968] dev_forward_change+0x3b3/0x850 [ 232.508722][ T3968] addrconf_fixup_forwarding+0x2af/0x4d0 [ 232.508865][ T3968] addrconf_sysctl_forward+0x209/0x2b0 [ 232.508946][ T3968] proc_sys_call_handler+0x31b/0x480 [ 232.509032][ T3968] new_sync_write+0x333/0x750 [ 232.509114][ T3968] vfs_write+0x6a4/0xc10 [ 232.509240][ T3968] ksys_write+0x116/0x250 [ 232.509323][ T3968] do_syscall_64+0x117/0x590 [ 232.509411][ T3968] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 232.509521][ T3968] [ 232.509603][ T3968] [ 232.509603][ T3968] stack backtrace: [ 232.509708][ T3968] CPU: 3 UID: 0 PID: 3968 Comm: sysctl Not tainted 7.1.0-rc5-virtme #1 PREEMPT(full) [ 232.509711][ T3968] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 232.509712][ T3968] Call Trace: [ 232.509714][ T3968] [ 232.509715][ T3968] dump_stack_lvl+0x6f/0xa0 [ 232.509719][ T3968] print_irq_inversion_bug.part.0.cold+0xe6/0x143 [ 232.509723][ T3968] mark_lock_irq+0x989/0x9c0 [ 232.509726][ T3968] mark_lock+0x1d7/0xa00 [ 232.509727][ T3968] mark_usage+0x105/0x170 [ 232.509729][ T3968] __lock_acquire+0x378/0xc10 [ 232.509731][ T3968] lock_acquire.part.0+0xbc/0x260 [ 232.509732][ T3968] ? __ipv6_dev_ac_dec+0x236/0x5d0 [ 232.509734][ T3968] ? rcu_is_watching+0x15/0xd0 [ 232.509737][ T3968] ? do_raw_read_unlock+0x70/0x70 [ 232.509739][ T3968] ? lock_acquire+0x134/0x160 [ 232.509741][ T3968] _raw_spin_lock+0x33/0x40 [ 232.509743][ T3968] ? __ipv6_dev_ac_dec+0x236/0x5d0 [ 232.509744][ T3968] __ipv6_dev_ac_dec+0x236/0x5d0 [ 232.509746][ T3968] addrconf_leave_anycast+0x1bc/0x260 [ 232.509748][ T3968] ? find_held_lock+0x2b/0x80 [ 232.509751][ T3968] ? __ipv6_isatap_ifid+0x210/0x210 [ 232.509753][ T3968] ? mark_held_locks+0x40/0x70 [ 232.509754][ T3968] ? lockdep_hardirqs_on+0x8c/0x130 [ 232.509756][ T3968] dev_forward_change+0x3b3/0x850 [ 232.509759][ T3968] ? addrconf_fixup_forwarding+0x4d/0x4d0 [ 232.509761][ T3968] ? addrconf_sysctl_proxy_ndp+0x2f0/0x2f0 [ 232.509763][ T3968] addrconf_fixup_forwarding+0x2af/0x4d0 [ 232.509766][ T3968] addrconf_sysctl_forward+0x209/0x2b0 [ 232.509768][ T3968] ? addrconf_fixup_forwarding+0x4d0/0x4d0 [ 232.509770][ T3968] ? addrconf_fixup_forwarding+0x4d0/0x4d0 [ 232.509772][ T3968] ? __kvmalloc_node_noprof+0x305/0x8a0 [ 232.509776][ T3968] ? proc_sys_call_handler+0x25d/0x480 [ 232.509778][ T3968] proc_sys_call_handler+0x31b/0x480 [ 232.509780][ T3968] ? proc_sys_lookup+0x3d0/0x3d0 [ 232.509782][ T3968] ? rcu_read_unlock+0x1b/0x70 [ 232.509785][ T3968] ? do_raw_spin_unlock+0x59/0x250 [ 232.509786][ T3968] ? rcu_lockdep_current_cpu_online+0x39/0x1b0 [ 232.509788][ T3968] ? rcu_read_lock_any_held+0x3c/0x90 [ 232.509790][ T3968] ? proc_sys_call_handler+0x480/0x480 [ 232.509792][ T3968] new_sync_write+0x333/0x750 [ 232.509794][ T3968] ? __lock_acquire+0x508/0xc10 [ 232.509795][ T3968] ? new_sync_read+0x740/0x740 [ 232.509797][ T3968] ? lock_acquire.part.0+0xbc/0x260 [ 232.509798][ T3968] ? ksys_write+0x116/0x250 [ 232.509801][ T3968] vfs_write+0x6a4/0xc10 [ 232.509802][ T3968] ksys_write+0x116/0x250 [ 232.509804][ T3968] ? __ia32_sys_read+0xc0/0xc0 [ 232.509805][ T3968] ? rcu_is_watching+0x15/0xd0 [ 232.509807][ T3968] ? rcu_is_watching+0x15/0xd0 [ 232.509809][ T3968] do_syscall_64+0x117/0x590 [ 232.509810][ T3968] ? trace_hardirqs_off+0xd/0x30 [ 232.509813][ T3968] ? exc_page_fault+0xee/0x100 [ 232.509815][ T3968] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 232.509817][ T3968] RIP: 0033:0x7f93cbb5908e [ 232.509820][ T3968] 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 [ 232.509821][ T3968] RSP: 002b:00007fff1f35f700 EFLAGS: 00000202 ORIG_RAX: 0000000000000001 [ 232.509825][ T3968] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f93cbb5908e [ 232.509826][ T3968] RDX: 0000000000000002 RSI: 0000557f8b9de4b0 RDI: 0000000000000005 [ 232.509827][ T3968] RBP: 00007fff1f35f710 R08: 0000000000000000 R09: 0000000000000000 [ 232.509828][ T3968] R10: 0000000000000000 R11: 0000000000000202 R12: 0000557f8b9e05e0 [ 232.509828][ T3968] R13: 0000557f8b9de470 R14: 0000000000000002 R15: 0000000000000000 [ 232.509831][ T3968]