[ 350.723000][T17380] [ 350.723088][T17380] ======================================================== [ 350.723223][T17380] WARNING: possible irq lock inversion dependency detected [ 350.723347][T17380] 7.1.0-rc5-virtme #1 Not tainted [ 350.723430][T17380] -------------------------------------------------------- [ 350.723552][T17380] sysctl/17380 just changed the state of lock: [ 350.723655][T17380] ffffffffafd7e8b8 (acaddr_hash_lock){+.+.}-{3:3}, at: __ipv6_dev_ac_dec+0x236/0x5d0 [ 350.723819][T17380] but this lock was taken by another, SOFTIRQ-safe lock in the past: [ 350.723949][T17380] (&ndev->lock){++--}-{3:3} [ 350.723951][T17380] [ 350.723951][T17380] [ 350.723951][T17380] and interrupts could create inverse lock ordering between them. [ 350.723951][T17380] [ 350.724259][T17380] [ 350.724259][T17380] other info that might help us debug this: [ 350.724383][T17380] Possible interrupt unsafe locking scenario: [ 350.724383][T17380] [ 350.724506][T17380] CPU0 CPU1 [ 350.724589][T17380] ---- ---- [ 350.724678][T17380] lock(acaddr_hash_lock); [ 350.724764][T17380] local_irq_disable(); [ 350.724865][T17380] lock(&ndev->lock); [ 350.724965][T17380] lock(acaddr_hash_lock); [ 350.725064][T17380] [ 350.725130][T17380] lock(&ndev->lock); [ 350.725192][T17380] [ 350.725192][T17380] *** DEADLOCK *** [ 350.725192][T17380] [ 350.725307][T17380] 2 locks held by sysctl/17380: [ 350.725393][T17380] #0: ff1100000a0b43e0 (sb_writers#3){.+.+}-{0:0}, at: ksys_write+0x116/0x250 [ 350.725539][T17380] #1: ffffffffafc8c9c0 (rtnl_mutex){+.+.}-{4:4}, at: addrconf_fixup_forwarding+0x4d/0x4d0 [ 350.725697][T17380] [ 350.725697][T17380] the shortest dependencies between 2nd lock and 1st lock: [ 350.725840][T17380] -> (&ndev->lock){++--}-{3:3} { [ 350.725926][T17380] HARDIRQ-ON-W at: [ 350.725991][T17380] __lock_acquire+0x378/0xc10 [ 350.726095][T17380] lock_acquire.part.0+0xbc/0x260 [ 350.726195][T17380] _raw_write_lock_bh+0x38/0x50 [ 350.726294][T17380] addrconf_permanent_addr+0x108/0x9c0 [ 350.726423][T17380] addrconf_notify+0x151/0xf30 [ 350.726529][T17380] notifier_call_chain+0xb0/0x320 [ 350.726628][T17380] __dev_notify_flags+0xde/0x280 [ 350.726728][T17380] netif_change_flags+0xfe/0x190 [ 350.726830][T17380] do_setlink.isra.0+0x1cc3/0x2750 [ 350.726935][T17380] rtnl_newlink+0x8d1/0xef0 [ 350.727033][T17380] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 350.727131][T17380] netlink_rcv_skb+0x14e/0x3a0 [ 350.727229][T17380] netlink_unicast+0x486/0x750 [ 350.727330][T17380] netlink_sendmsg+0x735/0xc60 [ 350.727429][T17380] ____sys_sendmsg+0x419/0x850 [ 350.727528][T17380] ___sys_sendmsg+0x14e/0x1d0 [ 350.727626][T17380] __sys_sendmsg+0x145/0x1f0 [ 350.727768][T17380] do_syscall_64+0x117/0x590 [ 350.727871][T17380] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 350.727992][T17380] HARDIRQ-ON-R at: [ 350.728094][T17380] __lock_acquire+0x378/0xc10 [ 350.728195][T17380] lock_acquire.part.0+0xbc/0x260 [ 350.728293][T17380] _raw_read_lock_bh+0x44/0x80 [ 350.728392][T17380] inet6_fill_ifla6_attrs+0x1aee/0x21e0 [ 350.728555][T17380] inet6_fill_link_af+0x5c/0xe0 [ 350.728657][T17380] rtnl_fill_ifinfo.isra.0+0x1a45/0x2c20 [ 350.728824][T17380] rtnl_getlink+0x9c9/0xeb0 [ 350.728924][T17380] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 350.729026][T17380] netlink_rcv_skb+0x14e/0x3a0 [ 350.729135][T17380] netlink_unicast+0x486/0x750 [ 350.729287][T17380] netlink_sendmsg+0x735/0xc60 [ 350.729394][T17380] ____sys_sendmsg+0x419/0x850 [ 350.729501][T17380] ___sys_sendmsg+0x14e/0x1d0 [ 350.729656][T17380] __sys_sendmsg+0x145/0x1f0 [ 350.729765][T17380] do_syscall_64+0x117/0x590 [ 350.729872][T17380] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 350.730038][T17380] IN-SOFTIRQ-W at: [ 350.730101][T17380] __lock_acquire+0x378/0xc10 [ 350.730206][T17380] lock_acquire.part.0+0xbc/0x260 [ 350.730356][T17380] _raw_write_lock+0x33/0x40 [ 350.730463][T17380] addrconf_rs_timer+0xb0/0x770 [ 350.730568][T17380] call_timer_fn+0x163/0x4f0 [ 350.730673][T17380] __run_timers+0x68f/0xab0 [ 350.730823][T17380] run_timer_softirq+0xf0/0x160 [ 350.730936][T17380] handle_softirqs+0x1d8/0x940 [ 350.731045][T17380] __irq_exit_rcu+0x103/0x1c0 [ 350.731188][T17380] irq_exit_rcu+0xe/0x30 [ 350.731292][T17380] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 350.731421][T17380] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 350.731592][T17380] pv_native_safe_halt+0xf/0x10 [ 350.731702][T17380] default_idle+0x9/0x10 [ 350.731808][T17380] default_idle_call+0x6e/0xb0 [ 350.731964][T17380] cpuidle_idle_call.constprop.0+0x237/0x410 [ 350.732090][T17380] do_idle+0xf5/0x160 [ 350.732188][T17380] cpu_startup_entry+0x53/0x70 [ 350.732337][T17380] rest_init+0x1f7/0x200 [ 350.732435][T17380] start_kernel+0x3ad/0x3b0 [ 350.732539][T17380] x86_64_start_reservations+0x24/0x30 [ 350.732662][T17380] x86_64_start_kernel+0x12b/0x130 [ 350.732762][T17380] common_startup_64+0x13e/0x148 [ 350.732867][T17380] IN-SOFTIRQ-R at: [ 350.732975][T17380] __lock_acquire+0x378/0xc10 [ 350.733072][T17380] lock_acquire.part.0+0xbc/0x260 [ 350.733170][T17380] _raw_read_lock_bh+0x44/0x80 [ 350.733269][T17380] ipv6_get_lladdr+0xa8/0x3f0 [ 350.733409][T17380] addrconf_rs_timer+0x251/0x770 [ 350.733509][T17380] call_timer_fn+0x163/0x4f0 [ 350.733613][T17380] __run_timers+0x68f/0xab0 [ 350.733752][T17380] run_timer_softirq+0xf0/0x160 [ 350.733857][T17380] handle_softirqs+0x1d8/0x940 [ 350.733957][T17380] __irq_exit_rcu+0x103/0x1c0 [ 350.734098][T17380] irq_exit_rcu+0xe/0x30 [ 350.734198][T17380] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 350.734323][T17380] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 350.734483][T17380] pv_native_safe_halt+0xf/0x10 [ 350.734582][T17380] default_idle+0x9/0x10 [ 350.734682][T17380] default_idle_call+0x6e/0xb0 [ 350.734827][T17380] cpuidle_idle_call.constprop.0+0x237/0x410 [ 350.734944][T17380] do_idle+0xf5/0x160 [ 350.735041][T17380] cpu_startup_entry+0x53/0x70 [ 350.735180][T17380] rest_init+0x1f7/0x200 [ 350.735278][T17380] start_kernel+0x3ad/0x3b0 [ 350.735374][T17380] x86_64_start_reservations+0x24/0x30 [ 350.735535][T17380] x86_64_start_kernel+0x12b/0x130 [ 350.735634][T17380] common_startup_64+0x13e/0x148 [ 350.735732][T17380] INITIAL USE at: [ 350.735791][T17380] __lock_acquire+0x378/0xc10 [ 350.735943][T17380] lock_acquire.part.0+0xbc/0x260 [ 350.736047][T17380] _raw_write_lock_bh+0x38/0x50 [ 350.736150][T17380] addrconf_permanent_addr+0x108/0x9c0 [ 350.736319][T17380] addrconf_notify+0x151/0xf30 [ 350.736421][T17380] notifier_call_chain+0xb0/0x320 [ 350.736528][T17380] __dev_notify_flags+0xde/0x280 [ 350.736685][T17380] netif_change_flags+0xfe/0x190 [ 350.736796][T17380] do_setlink.isra.0+0x1cc3/0x2750 [ 350.736907][T17380] rtnl_newlink+0x8d1/0xef0 [ 350.737050][T17380] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 350.737151][T17380] netlink_rcv_skb+0x14e/0x3a0 [ 350.737251][T17380] netlink_unicast+0x486/0x750 [ 350.737398][T17380] netlink_sendmsg+0x735/0xc60 [ 350.737505][T17380] ____sys_sendmsg+0x419/0x850 [ 350.737607][T17380] ___sys_sendmsg+0x14e/0x1d0 [ 350.737751][T17380] __sys_sendmsg+0x145/0x1f0 [ 350.737863][T17380] do_syscall_64+0x117/0x590 [ 350.737967][T17380] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 350.738135][T17380] INITIAL READ USE at: [ 350.738218][T17380] __lock_acquire+0x378/0xc10 [ 350.738321][T17380] lock_acquire.part.0+0xbc/0x260 [ 350.738444][T17380] _raw_read_lock_bh+0x44/0x80 [ 350.738588][T17380] inet6_fill_ifla6_attrs+0x1aee/0x21e0 [ 350.738718][T17380] inet6_fill_link_af+0x5c/0xe0 [ 350.738825][T17380] rtnl_fill_ifinfo.isra.0+0x1a45/0x2c20 [ 350.738990][T17380] rtnl_getlink+0x9c9/0xeb0 [ 350.739097][T17380] rtnetlink_rcv_msg+0x6fd/0xbd0 [ 350.739200][T17380] netlink_rcv_skb+0x14e/0x3a0 [ 350.739344][T17380] netlink_unicast+0x486/0x750 [ 350.739442][T17380] netlink_sendmsg+0x735/0xc60 [ 350.739547][T17380] ____sys_sendmsg+0x419/0x850 [ 350.739686][T17380] ___sys_sendmsg+0x14e/0x1d0 [ 350.739784][T17380] __sys_sendmsg+0x145/0x1f0 [ 350.739888][T17380] do_syscall_64+0x117/0x590 [ 350.740033][T17380] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 350.740150][T17380] } [ 350.740192][T17380] ... key at: [] __key.37+0x0/0x40 [ 350.740357][T17380] ... acquired at: [ 350.740419][T17380] __lock_acquire+0x508/0xc10 [ 350.740499][T17380] lock_acquire.part.0+0xbc/0x260 [ 350.740578][T17380] _raw_spin_lock+0x33/0x40 [ 350.740662][T17380] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 350.740801][T17380] __ipv6_dev_ac_inc+0x57e/0x930 [ 350.740884][T17380] addrconf_join_anycast+0x1bc/0x260 [ 350.740963][T17380] __ipv6_ifa_notify+0x75b/0xad0 [ 350.741083][T17380] addrconf_dad_completed+0x14b/0xe10 [ 350.741162][T17380] addrconf_dad_work+0x3c1/0x930 [ 350.741241][T17380] process_one_work+0xdf8/0x1410 [ 350.741320][T17380] worker_thread+0x4f1/0xd60 [ 350.741439][T17380] kthread+0x367/0x460 [ 350.741499][T17380] ret_from_fork+0x474/0x6b0 [ 350.741579][T17380] ret_from_fork_asm+0x11/0x20 [ 350.741662][T17380] [ 350.741703][T17380] -> (acaddr_hash_lock){+.+.}-{3:3} { [ 350.741832][T17380] HARDIRQ-ON-W at: [ 350.741893][T17380] __lock_acquire+0x378/0xc10 [ 350.741993][T17380] lock_acquire.part.0+0xbc/0x260 [ 350.742091][T17380] _raw_spin_lock+0x33/0x40 [ 350.742233][T17380] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 350.742353][T17380] __ipv6_dev_ac_inc+0x57e/0x930 [ 350.742450][T17380] addrconf_join_anycast+0x1bc/0x260 [ 350.742588][T17380] __ipv6_ifa_notify+0x75b/0xad0 [ 350.742687][T17380] addrconf_dad_completed+0x14b/0xe10 [ 350.742823][T17380] addrconf_dad_work+0x3c1/0x930 [ 350.742974][T17380] process_one_work+0xdf8/0x1410 [ 350.743101][T17380] worker_thread+0x4f1/0xd60 [ 350.743233][T17380] kthread+0x367/0x460 [ 350.743378][T17380] ret_from_fork+0x474/0x6b0 [ 350.743508][T17380] ret_from_fork_asm+0x11/0x20 [ 350.743639][T17380] SOFTIRQ-ON-W at: [ 350.743716][T17380] __lock_acquire+0x378/0xc10 [ 350.743903][T17380] lock_acquire.part.0+0xbc/0x260 [ 350.744021][T17380] _raw_spin_lock+0x33/0x40 [ 350.744152][T17380] __ipv6_dev_ac_dec+0x236/0x5d0 [ 350.744322][T17380] addrconf_leave_anycast+0x1bc/0x260 [ 350.744452][T17380] dev_forward_change+0x3b3/0x850 [ 350.744583][T17380] addrconf_fixup_forwarding+0x2af/0x4d0 [ 350.744790][T17380] addrconf_sysctl_forward+0x209/0x2b0 [ 350.744926][T17380] proc_sys_call_handler+0x31b/0x480 [ 350.745046][T17380] new_sync_write+0x333/0x750 [ 350.745213][T17380] vfs_write+0x6a4/0xc10 [ 350.745349][T17380] ksys_write+0x116/0x250 [ 350.745449][T17380] do_syscall_64+0x117/0x590 [ 350.745546][T17380] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 350.745705][T17380] INITIAL USE at: [ 350.745763][T17380] __lock_acquire+0x378/0xc10 [ 350.745866][T17380] lock_acquire.part.0+0xbc/0x260 [ 350.746016][T17380] _raw_spin_lock+0x33/0x40 [ 350.746117][T17380] ipv6_add_acaddr_hash.isra.0+0x16d/0x350 [ 350.746239][T17380] __ipv6_dev_ac_inc+0x57e/0x930 [ 350.746387][T17380] addrconf_join_anycast+0x1bc/0x260 [ 350.746496][T17380] __ipv6_ifa_notify+0x75b/0xad0 [ 350.746602][T17380] addrconf_dad_completed+0x14b/0xe10 [ 350.746752][T17380] addrconf_dad_work+0x3c1/0x930 [ 350.746860][T17380] process_one_work+0xdf8/0x1410 [ 350.746969][T17380] worker_thread+0x4f1/0xd60 [ 350.747115][T17380] kthread+0x367/0x460 [ 350.747198][T17380] ret_from_fork+0x474/0x6b0 [ 350.747303][T17380] ret_from_fork_asm+0x11/0x20 [ 350.747411][T17380] } [ 350.747493][T17380] ... key at: [] acaddr_hash_lock+0x18/0x45a0 [ 350.747617][T17380] ... acquired at: [ 350.747678][T17380] mark_lock+0x1d7/0xa00 [ 350.747764][T17380] mark_usage+0x105/0x170 [ 350.747893][T17380] __lock_acquire+0x378/0xc10 [ 350.747977][T17380] lock_acquire.part.0+0xbc/0x260 [ 350.748058][T17380] _raw_spin_lock+0x33/0x40 [ 350.748144][T17380] __ipv6_dev_ac_dec+0x236/0x5d0 [ 350.748266][T17380] addrconf_leave_anycast+0x1bc/0x260 [ 350.748349][T17380] dev_forward_change+0x3b3/0x850 [ 350.748431][T17380] addrconf_fixup_forwarding+0x2af/0x4d0 [ 350.748541][T17380] addrconf_sysctl_forward+0x209/0x2b0 [ 350.748670][T17380] proc_sys_call_handler+0x31b/0x480 [ 350.748758][T17380] new_sync_write+0x333/0x750 [ 350.748844][T17380] vfs_write+0x6a4/0xc10 [ 350.748926][T17380] ksys_write+0x116/0x250 [ 350.749045][T17380] do_syscall_64+0x117/0x590 [ 350.749123][T17380] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 350.749220][T17380] [ 350.749261][T17380] [ 350.749261][T17380] stack backtrace: [ 350.749400][T17380] CPU: 3 UID: 0 PID: 17380 Comm: sysctl Not tainted 7.1.0-rc5-virtme #1 PREEMPT(full) [ 350.749403][T17380] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 350.749405][T17380] Call Trace: [ 350.749406][T17380] [ 350.749407][T17380] dump_stack_lvl+0x6f/0xa0 [ 350.749412][T17380] print_irq_inversion_bug.part.0.cold+0xe6/0x143 [ 350.749415][T17380] mark_lock_irq+0x989/0x9c0 [ 350.749418][T17380] mark_lock+0x1d7/0xa00 [ 350.749420][T17380] mark_usage+0x105/0x170 [ 350.749421][T17380] __lock_acquire+0x378/0xc10 [ 350.749423][T17380] lock_acquire.part.0+0xbc/0x260 [ 350.749425][T17380] ? __ipv6_dev_ac_dec+0x236/0x5d0 [ 350.749426][T17380] ? rcu_is_watching+0x15/0xd0 [ 350.749429][T17380] ? do_raw_read_unlock+0x70/0x70 [ 350.749431][T17380] ? lock_acquire+0x134/0x160 [ 350.749433][T17380] _raw_spin_lock+0x33/0x40 [ 350.749435][T17380] ? __ipv6_dev_ac_dec+0x236/0x5d0 [ 350.749436][T17380] __ipv6_dev_ac_dec+0x236/0x5d0 [ 350.749438][T17380] addrconf_leave_anycast+0x1bc/0x260 [ 350.749440][T17380] ? find_held_lock+0x2b/0x80 [ 350.749443][T17380] ? __ipv6_isatap_ifid+0x210/0x210 [ 350.749445][T17380] ? mark_held_locks+0x40/0x70 [ 350.749446][T17380] ? lockdep_hardirqs_on+0x8c/0x130 [ 350.749448][T17380] dev_forward_change+0x3b3/0x850 [ 350.749451][T17380] ? addrconf_fixup_forwarding+0x4d/0x4d0 [ 350.749452][T17380] ? addrconf_sysctl_proxy_ndp+0x2f0/0x2f0 [ 350.749455][T17380] addrconf_fixup_forwarding+0x2af/0x4d0 [ 350.749458][T17380] addrconf_sysctl_forward+0x209/0x2b0 [ 350.749460][T17380] ? addrconf_fixup_forwarding+0x4d0/0x4d0 [ 350.749462][T17380] ? addrconf_fixup_forwarding+0x4d0/0x4d0 [ 350.749464][T17380] ? __kvmalloc_node_noprof+0x305/0x8a0 [ 350.749467][T17380] ? proc_sys_call_handler+0x25d/0x480 [ 350.749470][T17380] proc_sys_call_handler+0x31b/0x480 [ 350.749472][T17380] ? proc_sys_lookup+0x3d0/0x3d0 [ 350.749474][T17380] ? rcu_read_unlock+0x1b/0x70 [ 350.749476][T17380] ? do_raw_spin_unlock+0x59/0x250 [ 350.749478][T17380] ? rcu_lockdep_current_cpu_online+0x39/0x1b0 [ 350.749480][T17380] ? rcu_read_lock_any_held+0x3c/0x90 [ 350.749482][T17380] ? proc_sys_call_handler+0x480/0x480 [ 350.749484][T17380] new_sync_write+0x333/0x750 [ 350.749485][T17380] ? __lock_acquire+0x508/0xc10 [ 350.749487][T17380] ? new_sync_read+0x740/0x740 [ 350.749488][T17380] ? lock_acquire.part.0+0xbc/0x260 [ 350.749490][T17380] ? ksys_write+0x116/0x250 [ 350.749492][T17380] vfs_write+0x6a4/0xc10 [ 350.749494][T17380] ksys_write+0x116/0x250 [ 350.749495][T17380] ? __ia32_sys_read+0xc0/0xc0 [ 350.749497][T17380] ? rcu_is_watching+0x15/0xd0 [ 350.749498][T17380] ? rcu_is_watching+0x15/0xd0 [ 350.749500][T17380] do_syscall_64+0x117/0x590 [ 350.749502][T17380] ? trace_hardirqs_off+0xd/0x30 [ 350.749505][T17380] ? exc_page_fault+0xee/0x100 [ 350.749507][T17380] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 350.749508][T17380] RIP: 0033:0x7f349a96f08e [ 350.749511][T17380] 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 [ 350.749513][T17380] RSP: 002b:00007ffe525f4300 EFLAGS: 00000202 ORIG_RAX: 0000000000000001 [ 350.749516][T17380] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f349a96f08e [ 350.749517][T17380] RDX: 0000000000000002 RSI: 0000560d7ff064b0 RDI: 0000000000000005 [ 350.749518][T17380] RBP: 00007ffe525f4310 R08: 0000000000000000 R09: 0000000000000000 [ 350.749519][T17380] R10: 0000000000000000 R11: 0000000000000202 R12: 0000560d7ff085e0 [ 350.749520][T17380] R13: 0000560d7ff06470 R14: 0000000000000002 R15: 0000000000000000 [ 350.749522][T17380]