[ 143.529955][ C1] [ 143.530119][ C1] ======================================================== [ 143.530330][ C1] WARNING: possible irq lock inversion dependency detected [ 143.530541][ C1] 6.9.0-rc1-virtme #1 Not tainted [ 143.530684][ C1] -------------------------------------------------------- [ 143.530899][ C1] swapper/1/0 just changed the state of lock: [ 143.531073][ C1] ffff8880072d5580 (&ndev->lock){++-.}-{2:2}, at: addrconf_rs_timer+0xa9/0x730 [ 143.531335][ C1] but this lock took another, SOFTIRQ-unsafe lock in the past: [ 143.531552][ C1] (&p->alloc_lock){+.+.}-{2:2} [ 143.531557][ C1] [ 143.531557][ C1] [ 143.531557][ C1] and interrupts could create inverse lock ordering between them. [ 143.531557][ C1] [ 143.532078][ C1] [ 143.532078][ C1] other info that might help us debug this: [ 143.532289][ C1] Possible interrupt unsafe locking scenario: [ 143.532289][ C1] [ 143.532496][ C1] CPU0 CPU1 [ 143.532641][ C1] ---- ---- [ 143.532784][ C1] lock(&p->alloc_lock); [ 143.532895][ C1] local_irq_disable(); [ 143.533068][ C1] lock(&ndev->lock); [ 143.533245][ C1] lock(&p->alloc_lock); [ 143.533422][ C1] <Interrupt> [ 143.533529][ C1] lock(&ndev->lock); [ 143.533639][ C1] [ 143.533639][ C1] *** DEADLOCK *** [ 143.533639][ C1] [ 143.533847][ C1] 1 lock held by swapper/1/0: [ 143.533989][ C1] #0: ffffc900001d8d68 ((&ndev->rs_timer)){+.-.}-{0:0}, at: call_timer_fn+0xe8/0x230 [ 143.534249][ C1] [ 143.534249][ C1] the shortest dependencies between 2nd lock and 1st lock: [ 143.534496][ C1] -> (&p->alloc_lock){+.+.}-{2:2} { [ 143.534645][ C1] HARDIRQ-ON-W at: [ 143.534758][ C1] __lock_acquire+0x797/0x1570 [ 143.534943][ C1] lock_acquire.part.0+0xeb/0x330 [ 143.535124][ C1] _raw_spin_lock+0x30/0x40 [ 143.535305][ C1] set_mems_allowed+0x1d/0x210 [ 143.535486][ C1] kernel_init_freeable+0x72/0x310 [ 143.535666][ C1] kernel_init+0x20/0x200 [ 143.535854][ C1] ret_from_fork+0x31/0x70 [ 143.536036][ C1] ret_from_fork_asm+0x1a/0x30 [ 143.536214][ C1] SOFTIRQ-ON-W at: [ 143.536322][ C1] __lock_acquire+0x797/0x1570 [ 143.536501][ C1] lock_acquire.part.0+0xeb/0x330 [ 143.536677][ C1] _raw_spin_lock+0x30/0x40 [ 143.536859][ C1] set_mems_allowed+0x1d/0x210 [ 143.537038][ C1] kernel_init_freeable+0x72/0x310 [ 143.537218][ C1] kernel_init+0x20/0x200 [ 143.537398][ C1] ret_from_fork+0x31/0x70 [ 143.537579][ C1] ret_from_fork_asm+0x1a/0x30 [ 143.537758][ C1] INITIAL USE at: [ 143.537866][ C1] __lock_acquire+0x797/0x1570 [ 143.538047][ C1] lock_acquire.part.0+0xeb/0x330 [ 143.538301][ C1] _raw_spin_lock+0x30/0x40 [ 143.538482][ C1] set_mems_allowed+0x1d/0x210 [ 143.538659][ C1] kernel_init_freeable+0x72/0x310 [ 143.538922][ C1] kernel_init+0x20/0x200 [ 143.539100][ C1] ret_from_fork+0x31/0x70 [ 143.539280][ C1] ret_from_fork_asm+0x1a/0x30 [ 143.539457][ C1] } [ 143.539530][ C1] ... key at: [<ffffffff8fc71d20>] __key.387+0x0/0x40 [ 143.539740][ C1] ... acquired at: [ 143.539847][ C1] __lock_acquire+0xaf0/0x1570 [ 143.539991][ C1] lock_acquire.part.0+0xeb/0x330 [ 143.540133][ C1] _raw_spin_lock+0x30/0x40 [ 143.540274][ C1] __get_task_comm+0x27/0x70 [ 143.540420][ C1] ref_tracker_alloc+0x2ee/0x490 [ 143.540564][ C1] netdev_get_by_index+0x5e/0x80 [ 143.540781][ C1] fib6_nh_init+0x3d8/0x15b0 [ 143.540924][ C1] ip6_route_info_create+0xf18/0x17d0 [ 143.541065][ C1] ip6_route_add+0x1c/0x140 [ 143.541207][ C1] addrconf_prefix_route+0x1cc/0x2b0 [ 143.541350][ C1] addrconf_permanent_addr+0x32f/0x670 [ 143.541566][ C1] addrconf_notify+0x749/0xd60 [ 143.541708][ C1] notifier_call_chain+0xcd/0x150 [ 143.541852][ C1] __dev_notify_flags+0xe6/0x250 [ 143.541994][ C1] dev_change_flags+0xec/0x160 [ 143.542209][ C1] do_setlink+0x7d6/0x21e0 [ 143.542351][ C1] __rtnl_newlink+0xaa7/0xd80 [ 143.542494][ C1] rtnl_newlink+0x63/0xa0 [ 143.542636][ C1] rtnetlink_rcv_msg+0x2fb/0xbf0 [ 143.542851][ C1] netlink_rcv_skb+0x130/0x360 [ 143.542998][ C1] netlink_unicast+0x449/0x710 [ 143.543139][ C1] netlink_sendmsg+0x723/0xbe0 [ 143.543281][ C1] ____sys_sendmsg+0x7b2/0xa10 [ 143.543497][ C1] ___sys_sendmsg+0xee/0x170 [ 143.543639][ C1] __sys_sendmsg+0xcd/0x170 [ 143.543781][ C1] do_syscall_64+0xc6/0x1e0 [ 143.543923][ C1] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 143.544173][ C1] [ 143.544245][ C1] -> (&ndev->lock){++-.}-{2:2} { [ 143.544393][ C1] HARDIRQ-ON-W at: [ 143.544499][ C1] __lock_acquire+0x797/0x1570 [ 143.544676][ C1] lock_acquire.part.0+0xeb/0x330 [ 143.544938][ C1] _raw_write_lock_bh+0x38/0x50 [ 143.545115][ C1] addrconf_permanent_addr+0x6e/0x670 [ 143.545291][ C1] addrconf_notify+0x749/0xd60 [ 143.545469][ C1] notifier_call_chain+0xcd/0x150 [ 143.545649][ C1] __dev_notify_flags+0xe6/0x250 [ 143.545829][ C1] dev_change_flags+0xec/0x160 [ 143.546008][ C1] do_setlink+0x7d6/0x21e0 [ 143.546189][ C1] __rtnl_newlink+0xaa7/0xd80 [ 143.546370][ C1] rtnl_newlink+0x63/0xa0 [ 143.546551][ C1] rtnetlink_rcv_msg+0x2fb/0xbf0 [ 143.546806][ C1] netlink_rcv_skb+0x130/0x360 [ 143.546984][ C1] netlink_unicast+0x449/0x710 [ 143.547163][ C1] netlink_sendmsg+0x723/0xbe0 [ 143.547344][ C1] ____sys_sendmsg+0x7b2/0xa10 [ 143.547593][ C1] ___sys_sendmsg+0xee/0x170 [ 143.547770][ C1] __sys_sendmsg+0xcd/0x170 [ 143.547945][ C1] do_syscall_64+0xc6/0x1e0 [ 143.548274][ C1] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 143.548486][ C1] HARDIRQ-ON-R at: [ 143.548593][ C1] __lock_acquire+0x797/0x1570 [ 143.548770][ C1] lock_acquire.part.0+0xeb/0x330 [ 143.549033][ C1] _raw_read_lock_bh+0x44/0x80 [ 143.549211][ C1] inet6_fill_ifla6_attrs+0x516/0x740 [ 143.549390][ C1] inet6_fill_link_af+0x5e/0xe0 [ 143.549567][ C1] rtnl_fill_ifinfo+0x1612/0x29e0 [ 143.549744][ C1] rtmsg_ifinfo_build_skb+0x13c/0x240 [ 143.549921][ C1] rtmsg_ifinfo_event.part.0+0x2d/0x120 [ 143.550132][ C1] rtmsg_ifinfo+0x5b/0xa0 [ 143.550308][ C1] register_netdevice+0x1177/0x1690 [ 143.550489][ C1] register_netdev+0x20/0x40 [ 143.550669][ C1] sit_init_net+0x250/0x4f0 [ 143.550922][ C1] ops_init+0x9b/0x560 [ 143.551066][ C1] register_pernet_operations+0x2db/0x710 [ 143.551279][ C1] register_pernet_device+0x2a/0x60 [ 143.551531][ C1] sit_init+0x23/0xe0 [ 143.551677][ C1] do_one_initcall+0x8d/0x1e0 [ 143.551856][ C1] do_initcalls+0x1b2/0x3e0 [ 143.552035][ C1] kernel_init_freeable+0x232/0x310 [ 143.552285][ C1] kernel_init+0x20/0x200 [ 143.552462][ C1] ret_from_fork+0x31/0x70 [ 143.552641][ C1] ret_from_fork_asm+0x1a/0x30 [ 143.552892][ C1] IN-SOFTIRQ-W at: [ 143.552998][ C1] __lock_acquire+0x797/0x1570 [ 143.553177][ C1] lock_acquire.part.0+0xeb/0x330 [ 143.553354][ C1] _raw_write_lock+0x30/0x40 [ 143.553606][ C1] addrconf_rs_timer+0xa9/0x730 [ 143.553783][ C1] call_timer_fn+0x13b/0x230 [ 143.553960][ C1] __run_timers+0x545/0x810 [ 143.554213][ C1] run_timer_softirq+0xe8/0x1b0 [ 143.554394][ C1] __do_softirq+0x1f8/0x5df [ 143.554570][ C1] irq_exit_rcu+0x97/0xc0 [ 143.554747][ C1] sysvec_apic_timer_interrupt+0x75/0x80 [ 143.555044][ C1] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 143.555259][ C1] default_idle+0xf/0x20 [ 143.555440][ C1] default_idle_call+0x6d/0xb0 [ 143.555622][ C1] cpuidle_idle_call+0x1f4/0x280 [ 143.555827][ C1] do_idle+0xf9/0x160 [ 143.555971][ C1] cpu_startup_entry+0x54/0x60 [ 143.556151][ C1] start_secondary+0x21c/0x2b0 [ 143.556329][ C1] common_startup_64+0x12c/0x138 [ 143.556507][ C1] INITIAL USE at: [ 143.556613][ C1] __lock_acquire+0x797/0x1570 [ 143.556869][ C1] lock_acquire.part.0+0xeb/0x330 [ 143.557047][ C1] _raw_write_lock_bh+0x38/0x50 [ 143.557224][ C1] addrconf_permanent_addr+0x6e/0x670 [ 143.557475][ C1] addrconf_notify+0x749/0xd60 [ 143.557653][ C1] notifier_call_chain+0xcd/0x150 [ 143.557829][ C1] __dev_notify_flags+0xe6/0x250 [ 143.558009][ C1] dev_change_flags+0xec/0x160 [ 143.558260][ C1] do_setlink+0x7d6/0x21e0 [ 143.558438][ C1] __rtnl_newlink+0xaa7/0xd80 [ 143.558616][ C1] rtnl_newlink+0x63/0xa0 [ 143.558957][ C1] rtnetlink_rcv_msg+0x2fb/0xbf0 [ 143.559136][ C1] netlink_rcv_skb+0x130/0x360 [ 143.559313][ C1] netlink_unicast+0x449/0x710 [ 143.559493][ C1] netlink_sendmsg+0x723/0xbe0 [ 143.559672][ C1] ____sys_sendmsg+0x7b2/0xa10 [ 143.559848][ C1] ___sys_sendmsg+0xee/0x170 [ 143.560028][ C1] __sys_sendmsg+0xcd/0x170 [ 143.560205][ C1] do_syscall_64+0xc6/0x1e0 [ 143.560383][ C1] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 143.560597][ C1] INITIAL READ USE at: [ 143.560706][ C1] __lock_acquire+0x797/0x1570 [ 143.560960][ C1] lock_acquire.part.0+0xeb/0x330 [ 143.561138][ C1] _raw_read_lock_bh+0x44/0x80 [ 143.561314][ C1] inet6_fill_ifla6_attrs+0x516/0x740 [ 143.561601][ C1] inet6_fill_link_af+0x5e/0xe0 [ 143.561779][ C1] rtnl_fill_ifinfo+0x1612/0x29e0 [ 143.561958][ C1] rtmsg_ifinfo_build_skb+0x13c/0x240 [ 143.562245][ C1] rtmsg_ifinfo_event.part.0+0x2d/0x120 [ 143.562457][ C1] rtmsg_ifinfo+0x5b/0xa0 [ 143.562632][ C1] register_netdevice+0x1177/0x1690 [ 143.562923][ C1] register_netdev+0x20/0x40 [ 143.563102][ C1] sit_init_net+0x250/0x4f0 [ 143.563279][ C1] ops_init+0x9b/0x560 [ 143.563458][ C1] register_pernet_operations+0x2db/0x710 [ 143.563670][ C1] register_pernet_device+0x2a/0x60 [ 143.563882][ C1] sit_init+0x23/0xe0 [ 143.564060][ C1] do_one_initcall+0x8d/0x1e0 [ 143.564241][ C1] do_initcalls+0x1b2/0x3e0 [ 143.564418][ C1] kernel_init_freeable+0x232/0x310 [ 143.564630][ C1] kernel_init+0x20/0x200 [ 143.564883][ C1] ret_from_fork+0x31/0x70 [ 143.565063][ C1] ret_from_fork_asm+0x1a/0x30 [ 143.565241][ C1] } [ 143.565313][ C1] ... key at: [<ffffffff90cda9e0>] __key.36+0x0/0x40 [ 143.565598][ C1] ... acquired at: [ 143.565708][ C1] mark_lock+0x28d/0x3e0 [ 143.565860][ C1] mark_usage+0xd9/0x2a0 [ 143.566004][ C1] __lock_acquire+0x797/0x1570 [ 143.566220][ C1] lock_acquire.part.0+0xeb/0x330 [ 143.566363][ C1] _raw_write_lock+0x30/0x40 [ 143.566506][ C1] addrconf_rs_timer+0xa9/0x730 [ 143.566647][ C1] call_timer_fn+0x13b/0x230 [ 143.566864][ C1] __run_timers+0x545/0x810 [ 143.567008][ C1] run_timer_softirq+0xe8/0x1b0 [ 143.567152][ C1] __do_softirq+0x1f8/0x5df [ 143.567297][ C1] irq_exit_rcu+0x97/0xc0 [ 143.567512][ C1] sysvec_apic_timer_interrupt+0x75/0x80 [ 143.567691][ C1] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 143.567869][ C1] default_idle+0xf/0x20 [ 143.568013][ C1] default_idle_call+0x6d/0xb0 [ 143.568227][ C1] cpuidle_idle_call+0x1f4/0x280 [ 143.568371][ C1] do_idle+0xf9/0x160 [ 143.568479][ C1] cpu_startup_entry+0x54/0x60 [ 143.568622][ C1] start_secondary+0x21c/0x2b0 [ 143.568838][ C1] common_startup_64+0x12c/0x138 [ 143.568980][ C1] [ 143.569051][ C1] [ 143.569051][ C1] stack backtrace: [ 143.569224][ C1] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.9.0-rc1-virtme #1 [ 143.569434][ C1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 143.569750][ C1] Call Trace: [ 143.569862][ C1] <IRQ> [ 143.569936][ C1] dump_stack_lvl+0x82/0xd0 [ 143.570156][ C1] print_irq_inversion_bug.part.0+0x3d9/0x570 [ 143.570334][ C1] ? kernel_text_address+0x17/0xe0 [ 143.570481][ C1] ? __pfx_print_irq_inversion_bug.part.0+0x10/0x10 [ 143.570658][ C1] ? __pfx_usage_skip+0x10/0x10 [ 143.570876][ C1] ? __pfx_usage_match+0x10/0x10 [ 143.571019][ C1] ? arch_stack_walk+0x8c/0xf0 [ 143.571162][ C1] mark_lock_irq+0x4cd/0xa10 [ 143.571305][ C1] ? common_startup_64+0x12c/0x138 [ 143.571523][ C1] ? __pfx_mark_lock_irq+0x10/0x10 [ 143.571668][ C1] ? __pfx_stack_trace_save+0x10/0x10 [ 143.571812][ C1] ? save_trace+0x8f/0x5b0 [ 143.571959][ C1] mark_lock+0x28d/0x3e0 [ 143.572073][ C1] ? __pfx_stack_trace_save+0x10/0x10 [ 143.572288][ C1] mark_usage+0xd9/0x2a0 [ 143.572395][ C1] __lock_acquire+0x797/0x1570 [ 143.572540][ C1] ? __pfx_validate_chain+0x10/0x10 [ 143.572681][ C1] ? __pfx_addrconf_rs_timer+0x10/0x10 [ 143.572901][ C1] lock_acquire.part.0+0xeb/0x330 [ 143.573041][ C1] ? addrconf_rs_timer+0xa9/0x730 [ 143.573181][ C1] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 143.573325][ C1] ? trace_lock_acquire+0x135/0x1c0 [ 143.573469][ C1] ? addrconf_rs_timer+0xa9/0x730 [ 143.573609][ C1] ? lock_acquire+0x32/0xc0 [ 143.573748][ C1] ? addrconf_rs_timer+0xa9/0x730 [ 143.573889][ C1] _raw_write_lock+0x30/0x40 [ 143.574030][ C1] ? addrconf_rs_timer+0xa9/0x730 [ 143.574169][ C1] addrconf_rs_timer+0xa9/0x730 [ 143.574308][ C1] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 143.574451][ C1] ? __pfx_addrconf_rs_timer+0x10/0x10 [ 143.574594][ C1] ? call_timer_fn+0xe8/0x230 [ 143.574808][ C1] ? lock_acquire+0x32/0xc0 [ 143.574950][ C1] ? call_timer_fn+0xe8/0x230 [ 143.575091][ C1] ? __pfx_addrconf_rs_timer+0x10/0x10 [ 143.575230][ C1] call_timer_fn+0x13b/0x230 [ 143.575446][ C1] ? call_timer_fn+0xe8/0x230 [ 143.575587][ C1] ? call_timer_fn+0xe8/0x230 [ 143.575734][ C1] ? __pfx_call_timer_fn+0x10/0x10 [ 143.575881][ C1] ? mark_lock+0x38/0x3e0 [ 143.575993][ C1] __run_timers+0x545/0x810 [ 143.576206][ C1] ? __pfx_addrconf_rs_timer+0x10/0x10 [ 143.576349][ C1] ? __pfx___run_timers+0x10/0x10 [ 143.576493][ C1] ? do_raw_spin_lock+0x131/0x270 [ 143.576635][ C1] ? __pfx_do_raw_spin_lock+0x10/0x10 [ 143.576850][ C1] ? lock_acquire+0x32/0xc0 [ 143.576991][ C1] ? run_timer_softirq+0xe0/0x1b0 [ 143.577136][ C1] run_timer_softirq+0xe8/0x1b0 [ 143.577281][ C1] __do_softirq+0x1f8/0x5df [ 143.577497][ C1] irq_exit_rcu+0x97/0xc0 [ 143.577604][ C1] sysvec_apic_timer_interrupt+0x75/0x80 [ 143.577746][ C1] </IRQ> [ 143.577819][ C1] <TASK> [ 143.577890][ C1] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 143.578138][ C1] RIP: 0010:default_idle+0xf/0x20 [ 143.578286][ C1] Code: 4c 01 c7 4c 29 c2 e9 72 ff ff ff 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 66 90 0f 00 2d c3 c1 2b 00 fb f4 <fa> c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 [ 143.578867][ C1] RSP: 0018:ffffc9000014fdf8 EFLAGS: 00000246 [ 143.579048][ C1] RAX: 000000000032a3eb RBX: 1ffff92000029fc1 RCX: ffffffff8d1a58b5 [ 143.579261][ C1] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffff8aaaa4a4 [ 143.579472][ C1] RBP: 0000000000000000 R08: 0000000000000001 R09: ffffed1006c1709c [ 143.579685][ C1] R10: ffff8880360b84e3 R11: 1ffff110003a91cc R12: 0000000000000000 [ 143.579896][ C1] R13: ffff888001b82300 R14: dffffc0000000000 R15: 0000000000000000 [ 143.580184][ C1] ? ct_kernel_exit.constprop.0+0xc5/0xf0 [ 143.580327][ C1] ? cpuidle_idle_call+0x1f4/0x280 [ 143.580470][ C1] default_idle_call+0x6d/0xb0 [ 143.580608][ C1] cpuidle_idle_call+0x1f4/0x280 [ 143.580825][ C1] ? __pfx_cpuidle_idle_call+0x10/0x10 [ 143.580966][ C1] ? tsc_verify_tsc_adjust+0x5e/0x2b0 [ 143.581109][ C1] do_idle+0xf9/0x160 [ 143.581218][ C1] cpu_startup_entry+0x54/0x60 [ 143.581360][ C1] start_secondary+0x21c/0x2b0 [ 143.581576][ C1] ? __pfx_start_secondary+0x10/0x10 [ 143.581717][ C1] common_startup_64+0x12c/0x138 [ 143.581860][ C1] </TASK>