[ 379.932783][T18108] [ 379.932870][T18108] ======================================================== [ 379.932995][T18108] WARNING: possible irq lock inversion dependency detected [ 379.933115][T18108] 7.1.0-rc5-virtme #1 Not tainted [ 379.933197][T18108] -------------------------------------------------------- [ 379.933311][T18108] sysctl/18108 just changed the state of lock: [ 379.933423][T18108] ffffffff9a97e8b8 (acaddr_hash_lock){+.+.}-{3:3}, at: __ipv6_dev_ac_dec+0x236/0x5d0 [ 379.933574][T18108] but this lock was taken by another, SOFTIRQ-safe lock in the past: [ 379.933694][T18108] (&ndev->lock){++--}-{3:3} [ 379.933697][T18108] [ 379.933697][T18108] [ 379.933697][T18108] and interrupts could create inverse lock ordering between them. [ 379.933697][T18108] [ 379.933987][T18108] [ 379.933987][T18108] other info that might help us debug this: [ 379.934111][T18108] Possible interrupt unsafe locking scenario: [ 379.934111][T18108] [ 379.934228][T18108] CPU0 CPU1 [ 379.934307][T18108] ---- ---- [ 379.934397][T18108] lock(acaddr_hash_lock); [ 379.934477][T18108] local_irq_disable(); [ 379.934575][T18108] lock(&ndev->lock); [ 379.934674][T18108] lock(acaddr_hash_lock); [ 379.934779][T18108] [ 379.934839][T18108] lock(&ndev->lock); [ 379.934898][T18108] [ 379.934898][T18108] *** DEADLOCK *** [ 379.934898][T18108] [ 379.935017][T18108] 2 locks held by sysctl/18108: [ 379.935096][T18108] #0: ff11000009b743e0 (sb_writers#3){.+.+}-{0:0}, at: ksys_write+0x116/0x250 [ 379.935240][T18108] #1: ffffffff9a88c9c0 (rtnl_mutex){+.+.}-{4:4}, at: addrconf_fixup_forwarding+0x4d/0x4d0 [ 379.935401][T18108] [ 379.935401][T18108] the shortest dependencies between 2nd lock and 1st lock: [ 379.935539][T18108] -> (&ndev->lock){++--}-{3:3} { [ 379.935620][T18108] HARDIRQ-ON-W at: [ 379.935682][T18108] __lock_acquire+0x378/0xc10 [ 379.935790][T18108] lock_acquire.part.0+0xbc/0x260 [ 379.935892][T18108] _raw_write_lock_bh+0x38/0x50 [ 379.935998][T18108] addrconf_permanent_addr+0x108/0x9c0 [ 379.936122][T18108] addrconf_notify+0x151/0xf30 [ 379.936226][T18108] notifier_call_chain+0xb0/0x320 [ 379.936331][T18108] __dev_notify_flags+0xde/0x280 [ 379.936440][T18108] netif_change_flags+0xfe/0x190 [ 379.936541][T18108] do_setlink.isra.0+0x1cc3/0x2750 [ 379.936640][T18108] rtnl_newlink+0x8d1/0xef0 [ 379.936745][T18108] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 379.936844][T18108] netlink_rcv_skb+0x14e/0x3a0 [ 379.936977][T18108] netlink_unicast+0x486/0x750 [ 379.937078][T18108] netlink_sendmsg+0x735/0xc60 [ 379.937223][T18108] ____sys_sendmsg+0x419/0x850 [ 379.937345][T18108] ___sys_sendmsg+0x14e/0x1d0 [ 379.937482][T18108] __sys_sendmsg+0x145/0x1f0 [ 379.937585][T18108] do_syscall_64+0x117/0x590 [ 379.937685][T18108] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 379.937803][T18108] HARDIRQ-ON-R at: [ 379.937892][T18108] __lock_acquire+0x378/0xc10 [ 379.937994][T18108] lock_acquire.part.0+0xbc/0x260 [ 379.938098][T18108] _raw_read_lock_bh+0x44/0x80 [ 379.938200][T18108] inet6_fill_ifla6_attrs+0x1aee/0x21e0 [ 379.938318][T18108] inet6_fill_link_af+0x5c/0xe0 [ 379.938428][T18108] rtnl_fill_ifinfo.isra.0+0x1a45/0x2c20 [ 379.938549][T18108] rtnl_getlink+0x9c9/0xeb0 [ 379.938653][T18108] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 379.938751][T18108] netlink_rcv_skb+0x14e/0x3a0 [ 379.938855][T18108] netlink_unicast+0x486/0x750 [ 379.938954][T18108] netlink_sendmsg+0x735/0xc60 [ 379.939053][T18108] ____sys_sendmsg+0x419/0x850 [ 379.939149][T18108] ___sys_sendmsg+0x14e/0x1d0 [ 379.939252][T18108] __sys_sendmsg+0x145/0x1f0 [ 379.939353][T18108] do_syscall_64+0x117/0x590 [ 379.939460][T18108] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 379.939582][T18108] IN-SOFTIRQ-W at: [ 379.939640][T18108] __lock_acquire+0x378/0xc10 [ 379.939737][T18108] lock_acquire.part.0+0xbc/0x260 [ 379.939835][T18108] _raw_write_lock+0x33/0x40 [ 379.939931][T18108] addrconf_rs_timer+0xb0/0x770 [ 379.940029][T18108] call_timer_fn+0x163/0x4f0 [ 379.940139][T18108] __run_timers+0x68f/0xab0 [ 379.940237][T18108] run_timer_softirq+0xf0/0x160 [ 379.940335][T18108] handle_softirqs+0x1d8/0x940 [ 379.940445][T18108] __irq_exit_rcu+0x103/0x1c0 [ 379.940542][T18108] irq_exit_rcu+0xe/0x30 [ 379.940640][T18108] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 379.940757][T18108] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 379.940875][T18108] pv_native_safe_halt+0xf/0x10 [ 379.940972][T18108] default_idle+0x9/0x10 [ 379.941099][T18108] default_idle_call+0x6e/0xb0 [ 379.941229][T18108] cpuidle_idle_call.constprop.0+0x237/0x410 [ 379.941384][T18108] do_idle+0xf5/0x160 [ 379.941513][T18108] cpu_startup_entry+0x53/0x70 [ 379.941635][T18108] start_secondary+0x204/0x2b0 [ 379.941767][T18108] common_startup_64+0x13e/0x148 [ 379.941876][T18108] IN-SOFTIRQ-R at: [ 379.941965][T18108] __lock_acquire+0x378/0xc10 [ 379.942094][T18108] lock_acquire.part.0+0xbc/0x260 [ 379.942223][T18108] _raw_read_lock_bh+0x44/0x80 [ 379.942350][T18108] ipv6_get_lladdr+0xa8/0x3f0 [ 379.942475][T18108] addrconf_rs_timer+0x251/0x770 [ 379.942617][T18108] call_timer_fn+0x163/0x4f0 [ 379.942747][T18108] __run_timers+0x68f/0xab0 [ 379.942877][T18108] run_timer_softirq+0xf0/0x160 [ 379.942980][T18108] handle_softirqs+0x1d8/0x940 [ 379.943078][T18108] __irq_exit_rcu+0x103/0x1c0 [ 379.943176][T18108] irq_exit_rcu+0xe/0x30 [ 379.943279][T18108] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 379.943404][T18108] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 379.943523][T18108] pv_native_safe_halt+0xf/0x10 [ 379.943621][T18108] default_idle+0x9/0x10 [ 379.943727][T18108] default_idle_call+0x6e/0xb0 [ 379.943825][T18108] cpuidle_idle_call.constprop.0+0x237/0x410 [ 379.943941][T18108] do_idle+0xf5/0x160 [ 379.944040][T18108] cpu_startup_entry+0x53/0x70 [ 379.944138][T18108] start_secondary+0x204/0x2b0 [ 379.944236][T18108] common_startup_64+0x13e/0x148 [ 379.944340][T18108] INITIAL USE at: [ 379.944405][T18108] __lock_acquire+0x378/0xc10 [ 379.944534][T18108] lock_acquire.part.0+0xbc/0x260 [ 379.944664][T18108] _raw_write_lock_bh+0x38/0x50 [ 379.944790][T18108] addrconf_permanent_addr+0x108/0x9c0 [ 379.944920][T18108] addrconf_notify+0x151/0xf30 [ 379.945022][T18108] notifier_call_chain+0xb0/0x320 [ 379.945135][T18108] __dev_notify_flags+0xde/0x280 [ 379.945250][T18108] netif_change_flags+0xfe/0x190 [ 379.945385][T18108] do_setlink.isra.0+0x1cc3/0x2750 [ 379.945487][T18108] rtnl_newlink+0x8d1/0xef0 [ 379.945592][T18108] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 379.945691][T18108] netlink_rcv_skb+0x14e/0x3a0 [ 379.945790][T18108] netlink_unicast+0x486/0x750 [ 379.945892][T18108] netlink_sendmsg+0x735/0xc60 [ 379.945993][T18108] ____sys_sendmsg+0x419/0x850 [ 379.946097][T18108] ___sys_sendmsg+0x14e/0x1d0 [ 379.946195][T18108] __sys_sendmsg+0x145/0x1f0 [ 379.946297][T18108] do_syscall_64+0x117/0x590 [ 379.946403][T18108] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 379.946523][T18108] INITIAL READ USE at: [ 379.946601][T18108] __lock_acquire+0x378/0xc10 [ 379.946699][T18108] lock_acquire.part.0+0xbc/0x260 [ 379.946817][T18108] _raw_read_lock_bh+0x44/0x80 [ 379.946915][T18108] inet6_fill_ifla6_attrs+0x1aee/0x21e0 [ 379.947032][T18108] inet6_fill_link_af+0x5c/0xe0 [ 379.947134][T18108] rtnl_fill_ifinfo.isra.0+0x1a45/0x2c20 [ 379.947260][T18108] rtnl_getlink+0x9c9/0xeb0 [ 379.947361][T18108] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 379.947464][T18108] netlink_rcv_skb+0x14e/0x3a0 [ 379.947561][T18108] netlink_unicast+0x486/0x750 [ 379.947663][T18108] netlink_sendmsg+0x735/0xc60 [ 379.947764][T18108] ____sys_sendmsg+0x419/0x850 [ 379.947862][T18108] ___sys_sendmsg+0x14e/0x1d0 [ 379.947959][T18108] __sys_sendmsg+0x145/0x1f0 [ 379.948057][T18108] do_syscall_64+0x117/0x590 [ 379.948155][T18108] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 379.948274][T18108] } [ 379.948316][T18108] ... key at: [] __key.37+0x0/0x40 [ 379.948440][T18108] ... acquired at: [ 379.948500][T18108] __lock_acquire+0x508/0xc10 [ 379.948583][T18108] lock_acquire.part.0+0xbc/0x260 [ 379.948660][T18108] _raw_spin_lock+0x33/0x40 [ 379.948737][T18108] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 379.948834][T18108] __ipv6_dev_ac_inc+0x57e/0x930 [ 379.948913][T18108] addrconf_join_anycast+0x1bc/0x260 [ 379.948990][T18108] __ipv6_ifa_notify+0x75b/0xad0 [ 379.949068][T18108] addrconf_dad_completed+0x14b/0xe10 [ 379.949145][T18108] addrconf_dad_work+0x3c1/0x930 [ 379.949225][T18108] process_one_work+0xdf8/0x1410 [ 379.949307][T18108] worker_thread+0x4f1/0xd60 [ 379.949394][T18108] kthread+0x367/0x460 [ 379.949453][T18108] ret_from_fork+0x474/0x6b0 [ 379.949531][T18108] ret_from_fork_asm+0x11/0x20 [ 379.949610][T18108] [ 379.949655][T18108] -> (acaddr_hash_lock){+.+.}-{3:3} { [ 379.949735][T18108] HARDIRQ-ON-W at: [ 379.949794][T18108] __lock_acquire+0x378/0xc10 [ 379.949894][T18108] lock_acquire.part.0+0xbc/0x260 [ 379.949991][T18108] _raw_spin_lock+0x33/0x40 [ 379.950090][T18108] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 379.950207][T18108] __ipv6_dev_ac_inc+0x57e/0x930 [ 379.950305][T18108] addrconf_join_anycast+0x1bc/0x260 [ 379.950410][T18108] __ipv6_ifa_notify+0x75b/0xad0 [ 379.950508][T18108] addrconf_dad_completed+0x14b/0xe10 [ 379.950605][T18108] addrconf_dad_work+0x3c1/0x930 [ 379.950702][T18108] process_one_work+0xdf8/0x1410 [ 379.950799][T18108] worker_thread+0x4f1/0xd60 [ 379.950896][T18108] kthread+0x367/0x460 [ 379.950975][T18108] ret_from_fork+0x474/0x6b0 [ 379.951072][T18108] ret_from_fork_asm+0x11/0x20 [ 379.951169][T18108] SOFTIRQ-ON-W at: [ 379.951227][T18108] __lock_acquire+0x378/0xc10 [ 379.951324][T18108] lock_acquire.part.0+0xbc/0x260 [ 379.951436][T18108] _raw_spin_lock+0x33/0x40 [ 379.951535][T18108] __ipv6_dev_ac_dec+0x236/0x5d0 [ 379.951632][T18108] addrconf_leave_anycast+0x1bc/0x260 [ 379.951729][T18108] dev_forward_change+0x3b3/0x850 [ 379.951826][T18108] addrconf_fixup_forwarding+0x2af/0x4d0 [ 379.951943][T18108] addrconf_sysctl_forward+0x209/0x2b0 [ 379.952044][T18108] proc_sys_call_handler+0x31b/0x480 [ 379.952144][T18108] new_sync_write+0x333/0x750 [ 379.952241][T18108] vfs_write+0x6a4/0xc10 [ 379.952338][T18108] ksys_write+0x116/0x250 [ 379.952440][T18108] do_syscall_64+0x117/0x590 [ 379.952542][T18108] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 379.952660][T18108] INITIAL USE at: [ 379.952719][T18108] __lock_acquire+0x378/0xc10 [ 379.952817][T18108] lock_acquire.part.0+0xbc/0x260 [ 379.952914][T18108] _raw_spin_lock+0x33/0x40 [ 379.953017][T18108] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 379.953134][T18108] __ipv6_dev_ac_inc+0x57e/0x930 [ 379.953233][T18108] addrconf_join_anycast+0x1bc/0x260 [ 379.953331][T18108] __ipv6_ifa_notify+0x75b/0xad0 [ 379.953442][T18108] addrconf_dad_completed+0x14b/0xe10 [ 379.953540][T18108] addrconf_dad_work+0x3c1/0x930 [ 379.953638][T18108] process_one_work+0xdf8/0x1410 [ 379.953737][T18108] worker_thread+0x4f1/0xd60 [ 379.953835][T18108] kthread+0x367/0x460 [ 379.953913][T18108] ret_from_fork+0x474/0x6b0 [ 379.954011][T18108] ret_from_fork_asm+0x11/0x20 [ 379.954138][T18108] } [ 379.954180][T18108] ... key at: [] acaddr_hash_lock+0x18/0x45a0 [ 379.954299][T18108] ... acquired at: [ 379.954357][T18108] mark_lock+0x1d7/0xa00 [ 379.954442][T18108] mark_usage+0x105/0x170 [ 379.954547][T18108] __lock_acquire+0x378/0xc10 [ 379.954629][T18108] lock_acquire.part.0+0xbc/0x260 [ 379.954734][T18108] _raw_spin_lock+0x33/0x40 [ 379.954817][T18108] __ipv6_dev_ac_dec+0x236/0x5d0 [ 379.954926][T18108] addrconf_leave_anycast+0x1bc/0x260 [ 379.955034][T18108] dev_forward_change+0x3b3/0x850 [ 379.955117][T18108] addrconf_fixup_forwarding+0x2af/0x4d0 [ 379.955246][T18108] addrconf_sysctl_forward+0x209/0x2b0 [ 379.955356][T18108] proc_sys_call_handler+0x31b/0x480 [ 379.955454][T18108] new_sync_write+0x333/0x750 [ 379.955569][T18108] vfs_write+0x6a4/0xc10 [ 379.955653][T18108] ksys_write+0x116/0x250 [ 379.955737][T18108] do_syscall_64+0x117/0x590 [ 379.955847][T18108] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 379.955980][T18108] [ 379.956020][T18108] [ 379.956020][T18108] stack backtrace: [ 379.956150][T18108] CPU: 3 UID: 0 PID: 18108 Comm: sysctl Not tainted 7.1.0-rc5-virtme #1 PREEMPT(full) [ 379.956153][T18108] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 379.956155][T18108] Call Trace: [ 379.956157][T18108] [ 379.956158][T18108] dump_stack_lvl+0x6f/0xa0 [ 379.956162][T18108] print_irq_inversion_bug.part.0.cold+0xe6/0x143 [ 379.956165][T18108] mark_lock_irq+0x989/0x9c0 [ 379.956168][T18108] mark_lock+0x1d7/0xa00 [ 379.956170][T18108] mark_usage+0x105/0x170 [ 379.956171][T18108] __lock_acquire+0x378/0xc10 [ 379.956173][T18108] lock_acquire.part.0+0xbc/0x260 [ 379.956175][T18108] ? __ipv6_dev_ac_dec+0x236/0x5d0 [ 379.956176][T18108] ? rcu_is_watching+0x15/0xd0 [ 379.956179][T18108] ? do_raw_read_unlock+0x70/0x70 [ 379.956181][T18108] ? lock_acquire+0x134/0x160 [ 379.956183][T18108] _raw_spin_lock+0x33/0x40 [ 379.956184][T18108] ? __ipv6_dev_ac_dec+0x236/0x5d0 [ 379.956186][T18108] __ipv6_dev_ac_dec+0x236/0x5d0 [ 379.956188][T18108] addrconf_leave_anycast+0x1bc/0x260 [ 379.956189][T18108] ? find_held_lock+0x2b/0x80 [ 379.956192][T18108] ? __ipv6_isatap_ifid+0x210/0x210 [ 379.956194][T18108] ? mark_held_locks+0x40/0x70 [ 379.956195][T18108] ? lockdep_hardirqs_on+0x8c/0x130 [ 379.956198][T18108] dev_forward_change+0x3b3/0x850 [ 379.956200][T18108] ? addrconf_fixup_forwarding+0x4d/0x4d0 [ 379.956202][T18108] ? addrconf_sysctl_proxy_ndp+0x2f0/0x2f0 [ 379.956204][T18108] addrconf_fixup_forwarding+0x2af/0x4d0 [ 379.956207][T18108] addrconf_sysctl_forward+0x209/0x2b0 [ 379.956209][T18108] ? addrconf_fixup_forwarding+0x4d0/0x4d0 [ 379.956211][T18108] ? addrconf_fixup_forwarding+0x4d0/0x4d0 [ 379.956213][T18108] ? __kvmalloc_node_noprof+0x305/0x8a0 [ 379.956216][T18108] ? proc_sys_call_handler+0x25d/0x480 [ 379.956219][T18108] proc_sys_call_handler+0x31b/0x480 [ 379.956221][T18108] ? proc_sys_lookup+0x3d0/0x3d0 [ 379.956223][T18108] ? do_fault_around+0x300/0x5a0 [ 379.956225][T18108] ? find_held_lock+0x2b/0x80 [ 379.956227][T18108] ? rcu_lockdep_current_cpu_online+0x39/0x1b0 [ 379.956229][T18108] ? rcu_read_lock_any_held+0x3c/0x90 [ 379.956231][T18108] ? proc_sys_call_handler+0x480/0x480 [ 379.956233][T18108] new_sync_write+0x333/0x750 [ 379.956234][T18108] ? __lock_acquire+0x508/0xc10 [ 379.956236][T18108] ? new_sync_read+0x740/0x740 [ 379.956238][T18108] ? lock_acquire.part.0+0xbc/0x260 [ 379.956239][T18108] ? ksys_write+0x116/0x250 [ 379.956241][T18108] vfs_write+0x6a4/0xc10 [ 379.956243][T18108] ksys_write+0x116/0x250 [ 379.956244][T18108] ? __ia32_sys_read+0xc0/0xc0 [ 379.956246][T18108] ? rcu_is_watching+0x15/0xd0 [ 379.956247][T18108] ? rcu_is_watching+0x15/0xd0 [ 379.956249][T18108] do_syscall_64+0x117/0x590 [ 379.956250][T18108] ? trace_hardirqs_off+0xd/0x30 [ 379.956253][T18108] ? exc_page_fault+0xee/0x100 [ 379.956255][T18108] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 379.956256][T18108] RIP: 0033:0x7f990648408e [ 379.956259][T18108] 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 [ 379.956261][T18108] RSP: 002b:00007ffe53c04190 EFLAGS: 00000202 ORIG_RAX: 0000000000000001 [ 379.956264][T18108] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f990648408e [ 379.956265][T18108] RDX: 0000000000000002 RSI: 000055ff0b06d4b0 RDI: 0000000000000005 [ 379.956266][T18108] RBP: 00007ffe53c041a0 R08: 0000000000000000 R09: 0000000000000000 [ 379.956267][T18108] R10: 0000000000000000 R11: 0000000000000202 R12: 000055ff0b06f5e0 [ 379.956268][T18108] R13: 000055ff0b06d470 R14: 0000000000000002 R15: 0000000000000000 [ 379.956270][T18108]