[ 389.676169][T17991] [ 389.676256][T17991] ======================================================== [ 389.676385][T17991] WARNING: possible irq lock inversion dependency detected [ 389.676500][T17991] 7.1.0-rc5-virtme #1 Not tainted [ 389.676583][T17991] -------------------------------------------------------- [ 389.676695][T17991] sysctl/17991 just changed the state of lock: [ 389.676794][T17991] ffffffff9e57e8b8 (acaddr_hash_lock){+.+.}-{3:3}, at: __ipv6_dev_ac_dec+0x236/0x5d0 [ 389.676941][T17991] but this lock was taken by another, SOFTIRQ-safe lock in the past: [ 389.677059][T17991] (&ndev->lock){++--}-{3:3} [ 389.677062][T17991] [ 389.677062][T17991] [ 389.677062][T17991] and interrupts could create inverse lock ordering between them. [ 389.677062][T17991] [ 389.677352][T17991] [ 389.677352][T17991] other info that might help us debug this: [ 389.677471][T17991] Possible interrupt unsafe locking scenario: [ 389.677471][T17991] [ 389.677588][T17991] CPU0 CPU1 [ 389.677665][T17991] ---- ---- [ 389.677748][T17991] lock(acaddr_hash_lock); [ 389.677832][T17991] local_irq_disable(); [ 389.677929][T17991] lock(&ndev->lock); [ 389.678029][T17991] lock(acaddr_hash_lock); [ 389.678134][T17991] [ 389.678193][T17991] lock(&ndev->lock); [ 389.678253][T17991] [ 389.678253][T17991] *** DEADLOCK *** [ 389.678253][T17991] [ 389.678367][T17991] 2 locks held by sysctl/17991: [ 389.678445][T17991] #0: ff11000009b313e0 (sb_writers#3){.+.+}-{0:0}, at: ksys_write+0x116/0x250 [ 389.678586][T17991] #1: ffffffff9e48c9c0 (rtnl_mutex){+.+.}-{4:4}, at: addrconf_fixup_forwarding+0x4d/0x4d0 [ 389.678741][T17991] [ 389.678741][T17991] the shortest dependencies between 2nd lock and 1st lock: [ 389.678881][T17991] -> (&ndev->lock){++--}-{3:3} { [ 389.678965][T17991] HARDIRQ-ON-W at: [ 389.679030][T17991] __lock_acquire+0x378/0xc10 [ 389.679139][T17991] lock_acquire.part.0+0xbc/0x260 [ 389.679241][T17991] _raw_write_lock_bh+0x38/0x50 [ 389.679341][T17991] addrconf_permanent_addr+0x108/0x9c0 [ 389.679457][T17991] addrconf_notify+0x151/0xf30 [ 389.679556][T17991] notifier_call_chain+0xb0/0x320 [ 389.679656][T17991] __dev_notify_flags+0xde/0x280 [ 389.679759][T17991] netif_change_flags+0xfe/0x190 [ 389.679861][T17991] do_setlink.isra.0+0x1cc3/0x2750 [ 389.679962][T17991] rtnl_newlink+0x8d1/0xef0 [ 389.680060][T17991] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 389.680167][T17991] netlink_rcv_skb+0x14e/0x3a0 [ 389.680270][T17991] netlink_unicast+0x486/0x750 [ 389.680372][T17991] netlink_sendmsg+0x735/0xc60 [ 389.680472][T17991] ____sys_sendmsg+0x419/0x850 [ 389.680572][T17991] ___sys_sendmsg+0x14e/0x1d0 [ 389.680672][T17991] __sys_sendmsg+0x145/0x1f0 [ 389.680772][T17991] do_syscall_64+0x117/0x590 [ 389.680873][T17991] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 389.680991][T17991] HARDIRQ-ON-R at: [ 389.681053][T17991] __lock_acquire+0x378/0xc10 [ 389.681155][T17991] lock_acquire.part.0+0xbc/0x260 [ 389.681253][T17991] _raw_read_lock_bh+0x44/0x80 [ 389.681353][T17991] inet6_fill_ifla6_attrs+0x1aee/0x21e0 [ 389.681469][T17991] inet6_fill_link_af+0x5c/0xe0 [ 389.681570][T17991] rtnl_fill_ifinfo.isra.0+0x1a45/0x2c20 [ 389.681686][T17991] rtnl_getlink+0x9c9/0xeb0 [ 389.681782][T17991] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 389.681880][T17991] netlink_rcv_skb+0x14e/0x3a0 [ 389.681981][T17991] netlink_unicast+0x486/0x750 [ 389.682084][T17991] netlink_sendmsg+0x735/0xc60 [ 389.682187][T17991] ____sys_sendmsg+0x419/0x850 [ 389.682286][T17991] ___sys_sendmsg+0x14e/0x1d0 [ 389.682387][T17991] __sys_sendmsg+0x145/0x1f0 [ 389.682488][T17991] do_syscall_64+0x117/0x590 [ 389.682588][T17991] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 389.682706][T17991] IN-SOFTIRQ-W at: [ 389.682766][T17991] __lock_acquire+0x378/0xc10 [ 389.682864][T17991] lock_acquire.part.0+0xbc/0x260 [ 389.682965][T17991] _raw_write_lock+0x33/0x40 [ 389.683067][T17991] addrconf_rs_timer+0xb0/0x770 [ 389.683167][T17991] call_timer_fn+0x163/0x4f0 [ 389.683265][T17991] __run_timers+0x68f/0xab0 [ 389.683361][T17991] run_timer_softirq+0xf0/0x160 [ 389.683458][T17991] handle_softirqs+0x1d8/0x940 [ 389.683556][T17991] __irq_exit_rcu+0x103/0x1c0 [ 389.683653][T17991] irq_exit_rcu+0xe/0x30 [ 389.683750][T17991] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 389.683867][T17991] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 389.683984][T17991] pv_native_safe_halt+0xf/0x10 [ 389.684082][T17991] default_idle+0x9/0x10 [ 389.684184][T17991] default_idle_call+0x6e/0xb0 [ 389.684282][T17991] cpuidle_idle_call.constprop.0+0x237/0x410 [ 389.684399][T17991] do_idle+0xf5/0x160 [ 389.684496][T17991] cpu_startup_entry+0x53/0x70 [ 389.684594][T17991] rest_init+0x1f7/0x200 [ 389.684692][T17991] start_kernel+0x3ad/0x3b0 [ 389.684790][T17991] x86_64_start_reservations+0x24/0x30 [ 389.684907][T17991] x86_64_start_kernel+0x12b/0x130 [ 389.685006][T17991] common_startup_64+0x13e/0x148 [ 389.685107][T17991] IN-SOFTIRQ-R at: [ 389.685164][T17991] __lock_acquire+0x378/0xc10 [ 389.685263][T17991] lock_acquire.part.0+0xbc/0x260 [ 389.685359][T17991] _raw_read_lock_bh+0x44/0x80 [ 389.685456][T17991] ipv6_get_lladdr+0xa8/0x3f0 [ 389.685554][T17991] addrconf_rs_timer+0x251/0x770 [ 389.685650][T17991] call_timer_fn+0x163/0x4f0 [ 389.685749][T17991] __run_timers+0x68f/0xab0 [ 389.685846][T17991] run_timer_softirq+0xf0/0x160 [ 389.685944][T17991] handle_softirqs+0x1d8/0x940 [ 389.686044][T17991] __irq_exit_rcu+0x103/0x1c0 [ 389.686143][T17991] irq_exit_rcu+0xe/0x30 [ 389.686240][T17991] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 389.686356][T17991] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 389.686471][T17991] pv_native_safe_halt+0xf/0x10 [ 389.686567][T17991] default_idle+0x9/0x10 [ 389.686663][T17991] default_idle_call+0x6e/0xb0 [ 389.686760][T17991] cpuidle_idle_call.constprop.0+0x237/0x410 [ 389.686876][T17991] do_idle+0xf5/0x160 [ 389.686972][T17991] cpu_startup_entry+0x53/0x70 [ 389.687069][T17991] rest_init+0x1f7/0x200 [ 389.687171][T17991] start_kernel+0x3ad/0x3b0 [ 389.687269][T17991] x86_64_start_reservations+0x24/0x30 [ 389.687386][T17991] x86_64_start_kernel+0x12b/0x130 [ 389.687483][T17991] common_startup_64+0x13e/0x148 [ 389.687580][T17991] INITIAL USE at: [ 389.687638][T17991] __lock_acquire+0x378/0xc10 [ 389.687733][T17991] lock_acquire.part.0+0xbc/0x260 [ 389.687830][T17991] _raw_write_lock_bh+0x38/0x50 [ 389.687926][T17991] addrconf_permanent_addr+0x108/0x9c0 [ 389.688042][T17991] addrconf_notify+0x151/0xf30 [ 389.688141][T17991] notifier_call_chain+0xb0/0x320 [ 389.688238][T17991] __dev_notify_flags+0xde/0x280 [ 389.688334][T17991] netif_change_flags+0xfe/0x190 [ 389.688431][T17991] do_setlink.isra.0+0x1cc3/0x2750 [ 389.688528][T17991] rtnl_newlink+0x8d1/0xef0 [ 389.688626][T17991] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 389.688754][T17991] netlink_rcv_skb+0x14e/0x3a0 [ 389.688852][T17991] netlink_unicast+0x486/0x750 [ 389.688949][T17991] netlink_sendmsg+0x735/0xc60 [ 389.689044][T17991] ____sys_sendmsg+0x419/0x850 [ 389.689145][T17991] ___sys_sendmsg+0x14e/0x1d0 [ 389.689241][T17991] __sys_sendmsg+0x145/0x1f0 [ 389.689338][T17991] do_syscall_64+0x117/0x590 [ 389.689436][T17991] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 389.689553][T17991] INITIAL READ USE at: [ 389.689633][T17991] __lock_acquire+0x378/0xc10 [ 389.689729][T17991] lock_acquire.part.0+0xbc/0x260 [ 389.689844][T17991] _raw_read_lock_bh+0x44/0x80 [ 389.689940][T17991] inet6_fill_ifla6_attrs+0x1aee/0x21e0 [ 389.690055][T17991] inet6_fill_link_af+0x5c/0xe0 [ 389.690152][T17991] rtnl_fill_ifinfo.isra.0+0x1a45/0x2c20 [ 389.690266][T17991] rtnl_getlink+0x9c9/0xeb0 [ 389.690361][T17991] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 389.690456][T17991] netlink_rcv_skb+0x14e/0x3a0 [ 389.690555][T17991] netlink_unicast+0x486/0x750 [ 389.690652][T17991] netlink_sendmsg+0x735/0xc60 [ 389.690747][T17991] ____sys_sendmsg+0x419/0x850 [ 389.690842][T17991] ___sys_sendmsg+0x14e/0x1d0 [ 389.690938][T17991] __sys_sendmsg+0x145/0x1f0 [ 389.691036][T17991] do_syscall_64+0x117/0x590 [ 389.691135][T17991] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 389.691249][T17991] } [ 389.691288][T17991] ... key at: [] __key.37+0x0/0x40 [ 389.691403][T17991] ... acquired at: [ 389.691461][T17991] __lock_acquire+0x508/0xc10 [ 389.691544][T17991] lock_acquire.part.0+0xbc/0x260 [ 389.691620][T17991] _raw_spin_lock+0x33/0x40 [ 389.691697][T17991] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 389.691791][T17991] __ipv6_dev_ac_inc+0x57e/0x930 [ 389.691868][T17991] addrconf_join_anycast+0x1bc/0x260 [ 389.691946][T17991] __ipv6_ifa_notify+0x75b/0xad0 [ 389.692024][T17991] addrconf_dad_completed+0x14b/0xe10 [ 389.692106][T17991] addrconf_dad_work+0x3c1/0x930 [ 389.692183][T17991] process_one_work+0xdf8/0x1410 [ 389.692263][T17991] worker_thread+0x4f1/0xd60 [ 389.692341][T17991] kthread+0x367/0x460 [ 389.692400][T17991] ret_from_fork+0x474/0x6b0 [ 389.692478][T17991] ret_from_fork_asm+0x11/0x20 [ 389.692559][T17991] [ 389.692599][T17991] -> (acaddr_hash_lock){+.+.}-{3:3} { [ 389.692681][T17991] HARDIRQ-ON-W at: [ 389.692740][T17991] __lock_acquire+0x378/0xc10 [ 389.692882][T17991] lock_acquire.part.0+0xbc/0x260 [ 389.692980][T17991] _raw_spin_lock+0x33/0x40 [ 389.693081][T17991] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 389.693237][T17991] __ipv6_dev_ac_inc+0x57e/0x930 [ 389.693334][T17991] addrconf_join_anycast+0x1bc/0x260 [ 389.693431][T17991] __ipv6_ifa_notify+0x75b/0xad0 [ 389.693570][T17991] addrconf_dad_completed+0x14b/0xe10 [ 389.693668][T17991] addrconf_dad_work+0x3c1/0x930 [ 389.693763][T17991] process_one_work+0xdf8/0x1410 [ 389.693904][T17991] worker_thread+0x4f1/0xd60 [ 389.694000][T17991] kthread+0x367/0x460 [ 389.694079][T17991] ret_from_fork+0x474/0x6b0 [ 389.694174][T17991] ret_from_fork_asm+0x11/0x20 [ 389.694317][T17991] SOFTIRQ-ON-W at: [ 389.694378][T17991] __lock_acquire+0x378/0xc10 [ 389.694476][T17991] lock_acquire.part.0+0xbc/0x260 [ 389.694613][T17991] _raw_spin_lock+0x33/0x40 [ 389.694710][T17991] __ipv6_dev_ac_dec+0x236/0x5d0 [ 389.694805][T17991] addrconf_leave_anycast+0x1bc/0x260 [ 389.694943][T17991] dev_forward_change+0x3b3/0x850 [ 389.695042][T17991] addrconf_fixup_forwarding+0x2af/0x4d0 [ 389.695162][T17991] addrconf_sysctl_forward+0x209/0x2b0 [ 389.695301][T17991] proc_sys_call_handler+0x31b/0x480 [ 389.695401][T17991] new_sync_write+0x333/0x750 [ 389.695500][T17991] vfs_write+0x6a4/0xc10 [ 389.695601][T17991] ksys_write+0x116/0x250 [ 389.695744][T17991] do_syscall_64+0x117/0x590 [ 389.695839][T17991] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 389.695958][T17991] INITIAL USE at: [ 389.696055][T17991] __lock_acquire+0x378/0xc10 [ 389.696156][T17991] lock_acquire.part.0+0xbc/0x260 [ 389.696251][T17991] _raw_spin_lock+0x33/0x40 [ 389.696395][T17991] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 389.696512][T17991] __ipv6_dev_ac_inc+0x57e/0x930 [ 389.696609][T17991] addrconf_join_anycast+0x1bc/0x260 [ 389.696747][T17991] __ipv6_ifa_notify+0x75b/0xad0 [ 389.696843][T17991] addrconf_dad_completed+0x14b/0xe10 [ 389.696943][T17991] addrconf_dad_work+0x3c1/0x930 [ 389.697083][T17991] process_one_work+0xdf8/0x1410 [ 389.697180][T17991] worker_thread+0x4f1/0xd60 [ 389.697277][T17991] kthread+0x367/0x460 [ 389.697354][T17991] ret_from_fork+0x474/0x6b0 [ 389.697494][T17991] ret_from_fork_asm+0x11/0x20 [ 389.697589][T17991] } [ 389.697627][T17991] ... key at: [] acaddr_hash_lock+0x18/0x45a0 [ 389.697782][T17991] ... acquired at: [ 389.697839][T17991] mark_lock+0x1d7/0xa00 [ 389.697917][T17991] mark_usage+0x105/0x170 [ 389.697992][T17991] __lock_acquire+0x378/0xc10 [ 389.698070][T17991] lock_acquire.part.0+0xbc/0x260 [ 389.698196][T17991] _raw_spin_lock+0x33/0x40 [ 389.698271][T17991] __ipv6_dev_ac_dec+0x236/0x5d0 [ 389.698345][T17991] addrconf_leave_anycast+0x1bc/0x260 [ 389.698420][T17991] dev_forward_change+0x3b3/0x850 [ 389.698538][T17991] addrconf_fixup_forwarding+0x2af/0x4d0 [ 389.698632][T17991] addrconf_sysctl_forward+0x209/0x2b0 [ 389.698710][T17991] proc_sys_call_handler+0x31b/0x480 [ 389.698827][T17991] new_sync_write+0x333/0x750 [ 389.698904][T17991] vfs_write+0x6a4/0xc10 [ 389.698982][T17991] ksys_write+0x116/0x250 [ 389.699058][T17991] do_syscall_64+0x117/0x590 [ 389.699180][T17991] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 389.699274][T17991] [ 389.699312][T17991] [ 389.699312][T17991] stack backtrace: [ 389.699410][T17991] CPU: 2 UID: 0 PID: 17991 Comm: sysctl Not tainted 7.1.0-rc5-virtme #1 PREEMPT(full) [ 389.699413][T17991] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 389.699414][T17991] Call Trace: [ 389.699416][T17991] [ 389.699417][T17991] dump_stack_lvl+0x6f/0xa0 [ 389.699421][T17991] print_irq_inversion_bug.part.0.cold+0xe6/0x143 [ 389.699425][T17991] mark_lock_irq+0x989/0x9c0 [ 389.699427][T17991] mark_lock+0x1d7/0xa00 [ 389.699429][T17991] mark_usage+0x105/0x170 [ 389.699430][T17991] __lock_acquire+0x378/0xc10 [ 389.699433][T17991] lock_acquire.part.0+0xbc/0x260 [ 389.699434][T17991] ? __ipv6_dev_ac_dec+0x236/0x5d0 [ 389.699436][T17991] ? rcu_is_watching+0x15/0xd0 [ 389.699438][T17991] ? do_raw_read_unlock+0x70/0x70 [ 389.699440][T17991] ? lock_acquire+0x134/0x160 [ 389.699442][T17991] _raw_spin_lock+0x33/0x40 [ 389.699443][T17991] ? __ipv6_dev_ac_dec+0x236/0x5d0 [ 389.699445][T17991] __ipv6_dev_ac_dec+0x236/0x5d0 [ 389.699447][T17991] addrconf_leave_anycast+0x1bc/0x260 [ 389.699448][T17991] ? find_held_lock+0x2b/0x80 [ 389.699451][T17991] ? __ipv6_isatap_ifid+0x210/0x210 [ 389.699453][T17991] ? mark_held_locks+0x40/0x70 [ 389.699454][T17991] ? lockdep_hardirqs_on+0x8c/0x130 [ 389.699457][T17991] dev_forward_change+0x3b3/0x850 [ 389.699459][T17991] ? addrconf_fixup_forwarding+0x4d/0x4d0 [ 389.699461][T17991] ? addrconf_sysctl_proxy_ndp+0x2f0/0x2f0 [ 389.699463][T17991] addrconf_fixup_forwarding+0x2af/0x4d0 [ 389.699466][T17991] addrconf_sysctl_forward+0x209/0x2b0 [ 389.699468][T17991] ? addrconf_fixup_forwarding+0x4d0/0x4d0 [ 389.699470][T17991] ? addrconf_fixup_forwarding+0x4d0/0x4d0 [ 389.699472][T17991] ? __kvmalloc_node_noprof+0x305/0x8a0 [ 389.699475][T17991] ? proc_sys_call_handler+0x25d/0x480 [ 389.699477][T17991] proc_sys_call_handler+0x31b/0x480 [ 389.699479][T17991] ? proc_sys_lookup+0x3d0/0x3d0 [ 389.699481][T17991] ? do_fault_around+0x300/0x5a0 [ 389.699484][T17991] ? find_held_lock+0x2b/0x80 [ 389.699485][T17991] ? rcu_lockdep_current_cpu_online+0x39/0x1b0 [ 389.699487][T17991] ? rcu_read_lock_any_held+0x3c/0x90 [ 389.699489][T17991] ? proc_sys_call_handler+0x480/0x480 [ 389.699491][T17991] new_sync_write+0x333/0x750 [ 389.699493][T17991] ? __lock_acquire+0x508/0xc10 [ 389.699494][T17991] ? new_sync_read+0x740/0x740 [ 389.699496][T17991] ? lock_acquire.part.0+0xbc/0x260 [ 389.699497][T17991] ? ksys_write+0x116/0x250 [ 389.699499][T17991] vfs_write+0x6a4/0xc10 [ 389.699501][T17991] ksys_write+0x116/0x250 [ 389.699503][T17991] ? __ia32_sys_read+0xc0/0xc0 [ 389.699504][T17991] ? rcu_is_watching+0x15/0xd0 [ 389.699505][T17991] ? rcu_is_watching+0x15/0xd0 [ 389.699507][T17991] do_syscall_64+0x117/0x590 [ 389.699509][T17991] ? trace_hardirqs_off+0xd/0x30 [ 389.699512][T17991] ? exc_page_fault+0xee/0x100 [ 389.699513][T17991] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 389.699515][T17991] RIP: 0033:0x7fcbcc5e408e [ 389.699518][T17991] 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 [ 389.699519][T17991] RSP: 002b:00007fff9e043e50 EFLAGS: 00000202 ORIG_RAX: 0000000000000001 [ 389.699522][T17991] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007fcbcc5e408e [ 389.699524][T17991] RDX: 0000000000000002 RSI: 0000560ec2e184b0 RDI: 0000000000000005 [ 389.699525][T17991] RBP: 00007fff9e043e60 R08: 0000000000000000 R09: 0000000000000000 [ 389.699525][T17991] R10: 0000000000000000 R11: 0000000000000202 R12: 0000560ec2e1a5e0 [ 389.699526][T17991] R13: 0000560ec2e18470 R14: 0000000000000002 R15: 0000000000000000 [ 389.699528][T17991]