syzbot


possible deadlock in netif_reset_xps_queues

Status: closed as invalid on 2025/09/18 15:24
Subsystems: kernel
[Documentation on labels]
First crash: 42d, last: 42d

Sample crash report:
======================================================
WARNING: possible circular locking dependency detected
syzkaller #0 Not tainted
------------------------------------------------------
syz.3.18021/8730 is trying to acquire lock:
ffff8000888d2a88 (xps_map_mutex){+.+.}-{4:4}, at: netif_reset_xps_queues.part.0+0x38/0x88 net/core/dev.c:2753

but task is already holding lock:
ffff8000871b4170 (cpu_hotplug_lock){++++}-{0:0}, at: percpu_down_read include/linux/percpu-rwsem.h:77 [inline]
ffff8000871b4170 (cpu_hotplug_lock){++++}-{0:0}, at: cpus_read_lock+0x10/0x1c kernel/cpu.c:491

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #8 (cpu_hotplug_lock){++++}-{0:0}:
       percpu_down_read_internal.constprop.0+0x58/0x1f8 include/linux/percpu-rwsem.h:53
       percpu_down_read include/linux/percpu-rwsem.h:77 [inline]
       cpus_read_lock+0x10/0x1c kernel/cpu.c:491
       static_key_slow_inc+0x18/0x3c kernel/jump_label.c:190
       tcp_md5_do_add+0x1f0/0x2dc net/ipv4/tcp_ipv4.c:1435
       tcp_v4_parse_md5_keys+0x158/0x500 net/ipv4/tcp_ipv4.c:1576
       do_tcp_setsockopt+0xfdc/0x1aac net/ipv4/tcp.c:4030
       tcp_setsockopt+0xb0/0xcc net/ipv4/tcp.c:4112
       sock_common_setsockopt+0x70/0xe0 net/core/sock.c:3925
       do_sock_setsockopt+0x17c/0x354 net/socket.c:2344
       __sys_setsockopt+0xcc/0x164 net/socket.c:2369
       __do_sys_setsockopt net/socket.c:2375 [inline]
       __se_sys_setsockopt net/socket.c:2372 [inline]
       __arm64_sys_setsockopt+0xa4/0x100 net/socket.c:2372
       __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
       invoke_syscall+0x6c/0x258 arch/arm64/kernel/syscall.c:49
       el0_svc_common.constprop.0+0xac/0x230 arch/arm64/kernel/syscall.c:132
       do_el0_svc_compat+0x40/0x68 arch/arm64/kernel/syscall.c:157
       el0_svc_compat+0x4c/0x184 arch/arm64/kernel/entry-common.c:1029
       el0t_32_sync_handler+0x88/0xac arch/arm64/kernel/entry-common.c:1047
       el0t_32_sync+0x19c/0x1a0 arch/arm64/kernel/entry.S:601

-> #7 (sk_lock-AF_INET){+.+.}-{0:0}:
       lock_sock_nested+0x38/0xe8 net/core/sock.c:3733
       lock_sock include/net/sock.h:1667 [inline]
       inet_shutdown+0x50/0x348 net/ipv4/af_inet.c:905
       kernel_sock_shutdown+0x54/0x84 net/socket.c:3701
       nbd_mark_nsock_dead+0x100/0x534 drivers/block/nbd.c:318
       sock_shutdown+0x134/0x234 drivers/block/nbd.c:411
       nbd_clear_sock drivers/block/nbd.c:1416 [inline]
       nbd_config_put+0x154/0x5b0 drivers/block/nbd.c:1440
       nbd_release+0x7c/0x128 drivers/block/nbd.c:1745
       blkdev_put_whole+0x98/0xf0 block/bdev.c:721
       bdev_release+0x2a4/0x510 block/bdev.c:1144
       blkdev_release+0x14/0x24 block/fops.c:699
       __fput+0x2c8/0x954 fs/file_table.c:468
       ____fput+0x14/0x20 fs/file_table.c:496
       task_work_run+0x128/0x210 kernel/task_work.c:227
       resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
       do_notify_resume+0x1d8/0x260 arch/arm64/kernel/entry-common.c:155
       exit_to_user_mode_prepare arch/arm64/kernel/entry-common.c:173 [inline]
       exit_to_user_mode arch/arm64/kernel/entry-common.c:182 [inline]
       el0_svc_compat+0x104/0x184 arch/arm64/kernel/entry-common.c:1030
       el0t_32_sync_handler+0x88/0xac arch/arm64/kernel/entry-common.c:1047
       el0t_32_sync+0x19c/0x1a0 arch/arm64/kernel/entry.S:601

-> #6 (&nsock->tx_lock){+.+.}-{4:4}:
       __mutex_lock_common kernel/locking/mutex.c:598 [inline]
       __mutex_lock+0x144/0xffc kernel/locking/mutex.c:760
       mutex_lock_nested+0x24/0x30 kernel/locking/mutex.c:812
       nbd_handle_cmd drivers/block/nbd.c:1140 [inline]
       nbd_queue_rq+0x2cc/0xb54 drivers/block/nbd.c:1204
       blk_mq_dispatch_rq_list+0x2d0/0x161c block/blk-mq.c:2120
       __blk_mq_do_dispatch_sched block/blk-mq-sched.c:168 [inline]
       blk_mq_do_dispatch_sched block/blk-mq-sched.c:182 [inline]
       __blk_mq_sched_dispatch_requests+0xa44/0xe24 block/blk-mq-sched.c:307
       blk_mq_sched_dispatch_requests+0x7c/0x100 block/blk-mq-sched.c:329
       blk_mq_run_hw_queue+0x1e4/0x500 block/blk-mq.c:2358
       blk_mq_dispatch_list+0x348/0xa50 block/blk-mq.c:2919
       blk_mq_flush_plug_list block/blk-mq.c:2967 [inline]
       blk_mq_flush_plug_list+0xe8/0x508 block/blk-mq.c:2939
       __blk_flush_plug+0x208/0x3b8 block/blk-core.c:1220
       blk_finish_plug block/blk-core.c:1247 [inline]
       blk_finish_plug block/blk-core.c:1244 [inline]
       __submit_bio+0x3a4/0x4ac block/blk-core.c:649
       __submit_bio_noacct_mq block/blk-core.c:722 [inline]
       submit_bio_noacct_nocheck+0x59c/0xa8c block/blk-core.c:751
       submit_bio_noacct+0x858/0x18f8 block/blk-core.c:874
       submit_bio+0x32c/0x5f0 block/blk-core.c:916
       submit_bh_wbc+0x310/0x480 fs/buffer.c:2824
       submit_bh fs/buffer.c:2829 [inline]
       block_read_full_folio+0x26c/0x640 fs/buffer.c:2447
       blkdev_read_folio+0x1c/0x28 block/fops.c:491
       filemap_read_folio+0xac/0x1fc mm/filemap.c:2413
       do_read_cache_folio+0x1c4/0x480 mm/filemap.c:3957
       read_cache_folio+0x44/0x6c mm/filemap.c:3989
       read_mapping_folio include/linux/pagemap.h:991 [inline]
       read_part_sector+0xac/0x5f4 block/partitions/core.c:722
       read_lba+0x15c/0x2ec block/partitions/efi.c:248
       find_valid_gpt block/partitions/efi.c:603 [inline]
       efi_partition+0x1dc/0x2154 block/partitions/efi.c:720
       check_partition block/partitions/core.c:141 [inline]
       blk_add_partitions block/partitions/core.c:589 [inline]
       bdev_disk_changed+0x508/0xf0c block/partitions/core.c:693
       blkdev_get_whole+0x144/0x1e4 block/bdev.c:748
       bdev_open+0x1dc/0xa84 block/bdev.c:957
       blkdev_open+0x1d4/0x324 block/fops.c:691
       do_dentry_open+0x6a4/0x103c fs/open.c:965
       vfs_open+0x5c/0x2fc fs/open.c:1095
       do_open fs/namei.c:3887 [inline]
       path_openat+0x1490/0x24b4 fs/namei.c:4046
       do_filp_open+0x184/0x360 fs/namei.c:4073
       do_sys_openat2+0xe0/0x160 fs/open.c:1435
       do_sys_open fs/open.c:1450 [inline]
       __do_sys_openat fs/open.c:1466 [inline]
       __se_sys_openat fs/open.c:1461 [inline]
       __arm64_sys_openat+0x12c/0x1bc fs/open.c:1461
       __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
       invoke_syscall+0x6c/0x258 arch/arm64/kernel/syscall.c:49
       el0_svc_common.constprop.0+0xac/0x230 arch/arm64/kernel/syscall.c:132
       do_el0_svc+0x40/0x58 arch/arm64/kernel/syscall.c:151
       el0_svc+0x50/0x1a0 arch/arm64/kernel/entry-common.c:879
       el0t_64_sync_handler+0xa0/0xe4 arch/arm64/kernel/entry-common.c:898
       el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596

-> #5 (&cmd->lock){+.+.}-{4:4}:
       __mutex_lock_common kernel/locking/mutex.c:598 [inline]
       __mutex_lock+0x144/0xffc kernel/locking/mutex.c:760
       mutex_lock_nested+0x24/0x30 kernel/locking/mutex.c:812
       nbd_queue_rq+0xa8/0xb54 drivers/block/nbd.c:1196
       blk_mq_dispatch_rq_list+0x2d0/0x161c block/blk-mq.c:2120
       __blk_mq_do_dispatch_sched block/blk-mq-sched.c:168 [inline]
       blk_mq_do_dispatch_sched block/blk-mq-sched.c:182 [inline]
       __blk_mq_sched_dispatch_requests+0xa44/0xe24 block/blk-mq-sched.c:307
       blk_mq_sched_dispatch_requests+0x7c/0x100 block/blk-mq-sched.c:329
       blk_mq_run_hw_queue+0x1e4/0x500 block/blk-mq.c:2358
       blk_mq_dispatch_list+0x348/0xa50 block/blk-mq.c:2919
       blk_mq_flush_plug_list block/blk-mq.c:2967 [inline]
       blk_mq_flush_plug_list+0xe8/0x508 block/blk-mq.c:2939
       __blk_flush_plug+0x208/0x3b8 block/blk-core.c:1220
       blk_finish_plug block/blk-core.c:1247 [inline]
       blk_finish_plug block/blk-core.c:1244 [inline]
       __submit_bio+0x3a4/0x4ac block/blk-core.c:649
       __submit_bio_noacct_mq block/blk-core.c:722 [inline]
       submit_bio_noacct_nocheck+0x59c/0xa8c block/blk-core.c:751
       submit_bio_noacct+0x858/0x18f8 block/blk-core.c:874
       submit_bio+0x32c/0x5f0 block/blk-core.c:916
       submit_bh_wbc+0x310/0x480 fs/buffer.c:2824
       submit_bh fs/buffer.c:2829 [inline]
       block_read_full_folio+0x26c/0x640 fs/buffer.c:2447
       blkdev_read_folio+0x1c/0x28 block/fops.c:491
       filemap_read_folio+0xac/0x1fc mm/filemap.c:2413
       do_read_cache_folio+0x1c4/0x480 mm/filemap.c:3957
       read_cache_folio+0x44/0x6c mm/filemap.c:3989
       read_mapping_folio include/linux/pagemap.h:991 [inline]
       read_part_sector+0xac/0x5f4 block/partitions/core.c:722
       read_lba+0x15c/0x2ec block/partitions/efi.c:248
       find_valid_gpt block/partitions/efi.c:603 [inline]
       efi_partition+0x1dc/0x2154 block/partitions/efi.c:720
       check_partition block/partitions/core.c:141 [inline]
       blk_add_partitions block/partitions/core.c:589 [inline]
       bdev_disk_changed+0x508/0xf0c block/partitions/core.c:693
       blkdev_get_whole+0x144/0x1e4 block/bdev.c:748
       bdev_open+0x1dc/0xa84 block/bdev.c:957
       blkdev_open+0x1d4/0x324 block/fops.c:691
       do_dentry_open+0x6a4/0x103c fs/open.c:965
       vfs_open+0x5c/0x2fc fs/open.c:1095
       do_open fs/namei.c:3887 [inline]
       path_openat+0x1490/0x24b4 fs/namei.c:4046
       do_filp_open+0x184/0x360 fs/namei.c:4073
       do_sys_openat2+0xe0/0x160 fs/open.c:1435
       do_sys_open fs/open.c:1450 [inline]
       __do_sys_openat fs/open.c:1466 [inline]
       __se_sys_openat fs/open.c:1461 [inline]
       __arm64_sys_openat+0x12c/0x1bc fs/open.c:1461
       __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
       invoke_syscall+0x6c/0x258 arch/arm64/kernel/syscall.c:49
       el0_svc_common.constprop.0+0xac/0x230 arch/arm64/kernel/syscall.c:132
       do_el0_svc+0x40/0x58 arch/arm64/kernel/syscall.c:151
       el0_svc+0x50/0x1a0 arch/arm64/kernel/entry-common.c:879
       el0t_64_sync_handler+0xa0/0xe4 arch/arm64/kernel/entry-common.c:898
       el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596

-> #4 (set->srcu){.+.+}-{0:0}:
       srcu_lock_sync include/linux/srcu.h:173 [inline]
       __synchronize_srcu+0xa8/0x268 kernel/rcu/srcutree.c:1429
       synchronize_srcu_expedited kernel/rcu/srcutree.c:1469 [inline]
       synchronize_srcu+0x12c/0x370 kernel/rcu/srcutree.c:1525
       blk_mq_wait_quiesce_done block/blk-mq.c:283 [inline]
       blk_mq_wait_quiesce_done block/blk-mq.c:280 [inline]
       blk_mq_quiesce_queue block/blk-mq.c:303 [inline]
       blk_mq_quiesce_queue+0xf4/0x15c block/blk-mq.c:298
       elevator_switch+0x11c/0x414 block/elevator.c:588
       elevator_change+0x294/0x424 block/elevator.c:690
       elevator_set_default+0x22c/0x2ac block/elevator.c:766
       blk_register_queue+0x278/0x3ac block/blk-sysfs.c:904
       __add_disk+0x518/0xb80 block/genhd.c:528
       add_disk_fwnode+0x114/0x4c0 block/genhd.c:597
       device_add_disk+0x14/0x20 block/genhd.c:627
       add_disk include/linux/blkdev.h:774 [inline]
       nbd_dev_add+0x5f0/0x9c0 drivers/block/nbd.c:1973
       nbd_init+0xd4/0x1a8 drivers/block/nbd.c:2680
       do_one_initcall+0x130/0x7f0 init/main.c:1269
       do_initcall_level init/main.c:1331 [inline]
       do_initcalls init/main.c:1347 [inline]
       do_basic_setup init/main.c:1366 [inline]
       kernel_init_freeable+0x48c/0x70c init/main.c:1579
       kernel_init+0x24/0x1dc init/main.c:1469
       ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:860

-> #3 (&q->elevator_lock){+.+.}-{4:4}:
       __mutex_lock_common kernel/locking/mutex.c:598 [inline]
       __mutex_lock+0x144/0xffc kernel/locking/mutex.c:760
       mutex_lock_nested+0x24/0x30 kernel/locking/mutex.c:812
       elevator_change+0x130/0x424 block/elevator.c:688
       elevator_set_none+0x90/0xe4 block/elevator.c:781
       blk_mq_elv_switch_none block/blk-mq.c:5023 [inline]
       __blk_mq_update_nr_hw_queues+0x3b4/0xd38 block/blk-mq.c:5066
       blk_mq_update_nr_hw_queues+0x44/0x68 block/blk-mq.c:5124
       nbd_start_device+0x128/0xa38 drivers/block/nbd.c:1478
       nbd_genl_connect+0xcb4/0x14c4 drivers/block/nbd.c:2228
       genl_family_rcv_msg_doit+0x1b8/0x280 net/netlink/genetlink.c:1115
       genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]
       genl_rcv_msg+0x3ec/0x5bc net/netlink/genetlink.c:1210
       netlink_rcv_skb+0x19c/0x338 net/netlink/af_netlink.c:2552
       genl_rcv+0x38/0x50 net/netlink/genetlink.c:1219
       netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]
       netlink_unicast+0x424/0x700 net/netlink/af_netlink.c:1346
       netlink_sendmsg+0x644/0xa54 net/netlink/af_netlink.c:1896
       sock_sendmsg_nosec net/socket.c:714 [inline]
       __sock_sendmsg+0xc8/0x168 net/socket.c:729
       ____sys_sendmsg+0x500/0x764 net/socket.c:2614
       ___sys_sendmsg+0x11c/0x19c net/socket.c:2668
       __sys_sendmsg+0x114/0x19c net/socket.c:2700
       __compat_sys_sendmsg net/compat.c:346 [inline]
       __do_compat_sys_sendmsg net/compat.c:353 [inline]
       __se_compat_sys_sendmsg net/compat.c:350 [inline]
       __arm64_compat_sys_sendmsg+0x74/0xa4 net/compat.c:350
       __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
       invoke_syscall+0x6c/0x258 arch/arm64/kernel/syscall.c:49
       el0_svc_common.constprop.0+0xac/0x230 arch/arm64/kernel/syscall.c:132
       do_el0_svc_compat+0x40/0x68 arch/arm64/kernel/syscall.c:157
       el0_svc_compat+0x4c/0x184 arch/arm64/kernel/entry-common.c:1029
       el0t_32_sync_handler+0x88/0xac arch/arm64/kernel/entry-common.c:1047
       el0t_32_sync+0x19c/0x1a0 arch/arm64/kernel/entry.S:601

-> #2 (&q->q_usage_counter(io)#33){++++}-{0:0}:
       blk_alloc_queue+0x538/0x644 block/blk-core.c:461
       blk_mq_alloc_queue+0x144/0x220 block/blk-mq.c:4400
       __blk_mq_alloc_disk+0x20/0x1a4 block/blk-mq.c:4447
       nbd_dev_add+0x3c0/0x9c0 drivers/block/nbd.c:1943
       nbd_init+0xd4/0x1a8 drivers/block/nbd.c:2680
       do_one_initcall+0x130/0x7f0 init/main.c:1269
       do_initcall_level init/main.c:1331 [inline]
       do_initcalls init/main.c:1347 [inline]
       do_basic_setup init/main.c:1366 [inline]
       kernel_init_freeable+0x48c/0x70c init/main.c:1579
       kernel_init+0x24/0x1dc init/main.c:1469
       ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:860

-> #1 (fs_reclaim){+.+.}-{0:0}:
       __fs_reclaim_acquire mm/page_alloc.c:4234 [inline]
       fs_reclaim_acquire+0x138/0x160 mm/page_alloc.c:4248
       might_alloc include/linux/sched/mm.h:318 [inline]
       slab_pre_alloc_hook mm/slub.c:4131 [inline]
       slab_alloc_node mm/slub.c:4209 [inline]
       __do_kmalloc_node mm/slub.c:4364 [inline]
       __kmalloc_noprof+0xb8/0x4d0 mm/slub.c:4377
       kmalloc_noprof include/linux/slab.h:909 [inline]
       kzalloc_noprof include/linux/slab.h:1039 [inline]
       __netif_set_xps_queue+0x8c4/0x1d94 net/core/dev.c:2885
       virtnet_set_affinity+0x36c/0x5e8 drivers/net/virtio_net.c:4024
       init_vqs drivers/net/virtio_net.c:6585 [inline]
       init_vqs drivers/net/virtio_net.c:6571 [inline]
       virtnet_probe+0x12c4/0x33e8 drivers/net/virtio_net.c:6987
       virtio_dev_probe+0x4b0/0x9f4 drivers/virtio/virtio.c:347
       call_driver_probe drivers/base/dd.c:581 [inline]
       really_probe+0x180/0x7d8 drivers/base/dd.c:659
       __driver_probe_device+0x15c/0x364 drivers/base/dd.c:801
       driver_probe_device+0x5c/0x16c drivers/base/dd.c:831
       __driver_attach+0x1d0/0x478 drivers/base/dd.c:1217
       bus_for_each_dev+0xf8/0x17c drivers/base/bus.c:370
       driver_attach+0x3c/0x58 drivers/base/dd.c:1235
       bus_add_driver+0x234/0x4d4 drivers/base/bus.c:678
       driver_register+0xf4/0x3c0 drivers/base/driver.c:249
       __register_virtio_driver+0x88/0xfc drivers/virtio/virtio.c:456
       virtio_net_driver_init+0xb0/0xe0 drivers/net/virtio_net.c:7299
       do_one_initcall+0x130/0x7f0 init/main.c:1269
       do_initcall_level init/main.c:1331 [inline]
       do_initcalls init/main.c:1347 [inline]
       do_basic_setup init/main.c:1366 [inline]
       kernel_init_freeable+0x48c/0x70c init/main.c:1579
       kernel_init+0x24/0x1dc init/main.c:1469
       ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:860

-> #0 (xps_map_mutex){+.+.}-{4:4}:
       check_prev_add kernel/locking/lockdep.c:3165 [inline]
       check_prevs_add kernel/locking/lockdep.c:3284 [inline]
       validate_chain kernel/locking/lockdep.c:3908 [inline]
       __lock_acquire+0x1638/0x2380 kernel/locking/lockdep.c:5237
       lock_acquire kernel/locking/lockdep.c:5868 [inline]
       lock_acquire+0x310/0x38c kernel/locking/lockdep.c:5825
       __mutex_lock_common kernel/locking/mutex.c:598 [inline]
       __mutex_lock+0x144/0xffc kernel/locking/mutex.c:760
       mutex_lock_nested+0x24/0x30 kernel/locking/mutex.c:812
       netif_reset_xps_queues.part.0+0x38/0x88 net/core/dev.c:2753
       netif_reset_xps_queues net/core/dev.c:2766 [inline]
       netif_reset_xps_queues_gt net/core/dev.c:2766 [inline]
       unregister_netdevice_many_notify+0x1328/0x1a6c net/core/dev.c:12204
       unregister_netdevice_many net/core/dev.c:12229 [inline]
       unregister_netdevice_queue+0x25c/0x324 net/core/dev.c:12073
       unregister_vlan_dev+0x1e4/0x3d8 net/8021q/vlan.c:117
       vlan_ioctl_handler+0x2a8/0x970 net/8021q/vlan.c:652
       sock_ioctl+0x430/0x5d4 net/socket.c:1323
       compat_sock_ioctl_trans net/socket.c:3483 [inline]
       compat_sock_ioctl+0x2f4/0x530 net/socket.c:3555
       __do_compat_sys_ioctl fs/ioctl.c:696 [inline]
       __se_compat_sys_ioctl fs/ioctl.c:639 [inline]
       __arm64_compat_sys_ioctl+0x1d0/0x234 fs/ioctl.c:639
       __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
       invoke_syscall+0x6c/0x258 arch/arm64/kernel/syscall.c:49
       el0_svc_common.constprop.0+0xac/0x230 arch/arm64/kernel/syscall.c:132
       do_el0_svc_compat+0x40/0x68 arch/arm64/kernel/syscall.c:157
       el0_svc_compat+0x4c/0x184 arch/arm64/kernel/entry-common.c:1029
       el0t_32_sync_handler+0x88/0xac arch/arm64/kernel/entry-common.c:1047
       el0t_32_sync+0x19c/0x1a0 arch/arm64/kernel/entry.S:601

other info that might help us debug this:

Chain exists of:
  xps_map_mutex --> sk_lock-AF_INET --> cpu_hotplug_lock

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  rlock(cpu_hotplug_lock);
                               lock(sk_lock-AF_INET);
                               lock(cpu_hotplug_lock);
  lock(xps_map_mutex);

 *** DEADLOCK ***

3 locks held by syz.3.18021/8730:
 #0: ffff8000888b91e8 (vlan_ioctl_mutex){+.+.}-{4:4}, at: sock_ioctl+0x418/0x5d4 net/socket.c:1321
 #1: ffff8000888e2648 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_lock+0x1c/0x28 net/core/rtnetlink.c:80
 #2: ffff8000871b4170 (cpu_hotplug_lock){++++}-{0:0}, at: percpu_down_read include/linux/percpu-rwsem.h:77 [inline]
 #2: ffff8000871b4170 (cpu_hotplug_lock){++++}-{0:0}, at: cpus_read_lock+0x10/0x1c kernel/cpu.c:491

stack backtrace:
CPU: 1 UID: 0 PID: 8730 Comm: syz.3.18021 Not tainted syzkaller #0 PREEMPT 
Hardware name: linux,dummy-virt (DT)
Call trace:
 show_stack+0x18/0x24 arch/arm64/kernel/stacktrace.c:499 (C)
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0xa4/0xf4 lib/dump_stack.c:120
 dump_stack+0x1c/0x28 lib/dump_stack.c:129
 print_circular_bug+0x28c/0x370 kernel/locking/lockdep.c:2043
 check_noncircular+0x168/0x17c kernel/locking/lockdep.c:2175
 check_prev_add kernel/locking/lockdep.c:3165 [inline]
 check_prevs_add kernel/locking/lockdep.c:3284 [inline]
 validate_chain kernel/locking/lockdep.c:3908 [inline]
 __lock_acquire+0x1638/0x2380 kernel/locking/lockdep.c:5237
 lock_acquire kernel/locking/lockdep.c:5868 [inline]
 lock_acquire+0x310/0x38c kernel/locking/lockdep.c:5825
 __mutex_lock_common kernel/locking/mutex.c:598 [inline]
 __mutex_lock+0x144/0xffc kernel/locking/mutex.c:760
 mutex_lock_nested+0x24/0x30 kernel/locking/mutex.c:812
 netif_reset_xps_queues.part.0+0x38/0x88 net/core/dev.c:2753
 netif_reset_xps_queues net/core/dev.c:2766 [inline]
 netif_reset_xps_queues_gt net/core/dev.c:2766 [inline]
 unregister_netdevice_many_notify+0x1328/0x1a6c net/core/dev.c:12204
 unregister_netdevice_many net/core/dev.c:12229 [inline]
 unregister_netdevice_queue+0x25c/0x324 net/core/dev.c:12073
 unregister_vlan_dev+0x1e4/0x3d8 net/8021q/vlan.c:117
 vlan_ioctl_handler+0x2a8/0x970 net/8021q/vlan.c:652
 sock_ioctl+0x430/0x5d4 net/socket.c:1323
 compat_sock_ioctl_trans net/socket.c:3483 [inline]
 compat_sock_ioctl+0x2f4/0x530 net/socket.c:3555
 __do_compat_sys_ioctl fs/ioctl.c:696 [inline]
 __se_compat_sys_ioctl fs/ioctl.c:639 [inline]
 __arm64_compat_sys_ioctl+0x1d0/0x234 fs/ioctl.c:639
 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
 invoke_syscall+0x6c/0x258 arch/arm64/kernel/syscall.c:49
 el0_svc_common.constprop.0+0xac/0x230 arch/arm64/kernel/syscall.c:132
 do_el0_svc_compat+0x40/0x68 arch/arm64/kernel/syscall.c:157
 el0_svc_compat+0x4c/0x184 arch/arm64/kernel/entry-common.c:1029
 el0t_32_sync_handler+0x88/0xac arch/arm64/kernel/entry-common.c:1047
 el0t_32_sync+0x19c/0x1a0 arch/arm64/kernel/entry.S:601

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/08/31 12:40 upstream c8bc81a52d5a 807a3b61 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu2-arm64-compat possible deadlock in netif_reset_xps_queues
* Struck through repros no longer work on HEAD.