GRED: Unable to relocate VQ 0x0 after dequeue, screwing up backlog
------------[ cut here ]------------
refcount_t: decrement hit 0; leaking memory.
WARNING: CPU: 1 PID: 4033 at lib/refcount.c:31 refcount_warn_saturate+0xbf/0x1e0 lib/refcount.c:31
Modules linked in:
CPU: 1 PID: 4033 Comm: kworker/u4:13 Not tainted 5.15.0-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: netns cleanup_net
RIP: 0010:refcount_warn_saturate+0xbf/0x1e0 lib/refcount.c:31
Code: 1d 69 11 82 09 31 ff 89 de e8 ad ae 9e fd 84 db 75 e0 e8 64 a8 9e fd 48 c7 c7 20 2a e4 89 c6 05 49 11 82 09 01 e8 c1 55 1b 05 <0f> 0b eb c4 e8 48 a8 9e fd 0f b6 1d 38 11 82 09 31 ff 89 de e8 78
RSP: 0018:ffffc90000dc0df0 EFLAGS: 00010282
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: ffff88808503d700 RSI: ffffffff815ef908 RDI: fffff520001b81b0
RBP: 0000000000000004 R08: 0000000000000000 R09: 0000000000000000
R10: ffffffff815e96ee R11: 0000000000000000 R12: 0000000000000001
R13: ffff88807d2f45b0 R14: 0000000000000007 R15: ffff888014fed1e8
FS: 0000000000000000(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ff93abe7020 CR3: 000000007f9ca000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
__refcount_dec include/linux/refcount.h:344 [inline]
refcount_dec include/linux/refcount.h:359 [inline]
dev_put include/linux/netdevice.h:4166 [inline]
in_dev_finish_destroy+0x160/0x1b0 net/ipv4/devinet.c:246
in_dev_put include/linux/inetdevice.h:276 [inline]
in_dev_rcu_put+0x83/0xb0 net/ipv4/devinet.c:303
rcu_do_batch kernel/rcu/tree.c:2506 [inline]
rcu_core+0x7ab/0x1470 kernel/rcu/tree.c:2741
__do_softirq+0x29b/0x9c2 kernel/softirq.c:558
invoke_softirq kernel/softirq.c:432 [inline]
__irq_exit_rcu+0x123/0x180 kernel/softirq.c:636
irq_exit_rcu+0x5/0x20 kernel/softirq.c:648
sysvec_apic_timer_interrupt+0x93/0xc0 arch/x86/kernel/apic/apic.c:1097
asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:638
RIP: 0010:orc_ip arch/x86/kernel/unwind_orc.c:30 [inline]
RIP: 0010:__orc_find+0x6f/0xf0 arch/x86/kernel/unwind_orc.c:52
Code: 72 4d 4c 89 e0 48 29 e8 48 89 c2 48 c1 e8 3f 48 c1 fa 02 48 01 d0 48 d1 f8 48 8d 5c 85 00 48 89 d8 48 c1 e8 03 42 0f b6 14 38 <48> 89 d8 83 e0 07 83 c0 03 38 d0 7c 04 84 d2 75 48 48 63 03 48 01
RSP: 0018:ffffc90004d5f1e8 EFLAGS: 00000a07
RAX: 1ffffffff1b943cf RBX: ffffffff8dca1e7c RCX: ffffffff871bc2e9
RDX: 0000000000000000 RSI: ffffffff8e5eec82 RDI: ffffffff8dca1e7c
RBP: ffffffff8dca1e7c R08: 0000000000000000 R09: ffffffff8e5eec82
R10: fffff520009abe6c R11: 0000000000086089 R12: ffffffff8dca1e7c
R13: ffffffff8dca1e7c R14: ffffffff8dca1e7c R15: dffffc0000000000
orc_find arch/x86/kernel/unwind_orc.c:173 [inline]
unwind_next_frame+0x32a/0x1ce0 arch/x86/kernel/unwind_orc.c:443
arch_stack_walk+0x7d/0xe0 arch/x86/kernel/stacktrace.c:25
stack_trace_save+0x8c/0xc0 kernel/stacktrace.c:121
kasan_save_stack+0x1b/0x40 mm/kasan/common.c:38
kasan_set_track+0x1c/0x30 mm/kasan/common.c:46
kasan_set_free_info+0x20/0x30 mm/kasan/generic.c:360
____kasan_slab_free mm/kasan/common.c:366 [inline]
____kasan_slab_free mm/kasan/common.c:328 [inline]
__kasan_slab_free+0xff/0x130 mm/kasan/common.c:374
kasan_slab_free include/linux/kasan.h:235 [inline]
slab_free_hook mm/slub.c:1700 [inline]
slab_free_freelist_hook+0x8b/0x1c0 mm/slub.c:1726
slab_free mm/slub.c:3492 [inline]
kmem_cache_free+0x95/0x5d0 mm/slub.c:3508
kernfs_put.part.0+0x2c4/0x540 fs/kernfs/dir.c:539
kernfs_put+0x42/0x50 fs/kernfs/dir.c:513
__kernfs_remove+0x725/0xab0 fs/kernfs/dir.c:1372
kernfs_remove_by_name_ns+0x4f/0xa0 fs/kernfs/dir.c:1544
kernfs_remove_by_name include/linux/kernfs.h:598 [inline]
remove_files+0x96/0x1c0 fs/sysfs/group.c:28
sysfs_remove_group+0x87/0x170 fs/sysfs/group.c:289
netdev_queue_update_kobjects+0x308/0x460 net/core/net-sysfs.c:1723
remove_queue_kobjects net/core/net-sysfs.c:1822 [inline]
netdev_unregister_kobject+0x15b/0x1f0 net/core/net-sysfs.c:1972
unregister_netdevice_many+0xd1f/0x1790 net/core/dev.c:11101
default_device_exit_batch+0x2fa/0x3c0 net/core/dev.c:11604
ops_exit_list+0x10d/0x160 net/core/net_namespace.c:171
cleanup_net+0x4ea/0xb00 net/core/net_namespace.c:593
process_one_work+0x9b2/0x1690 kernel/workqueue.c:2297
worker_thread+0x658/0x11f0 kernel/workqueue.c:2444
kthread+0x405/0x4f0 kernel/kthread.c:327
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
----------------
Code disassembly (best guess):
0: 72 4d jb 0x4f
2: 4c 89 e0 mov %r12,%rax
5: 48 29 e8 sub %rbp,%rax
8: 48 89 c2 mov %rax,%rdx
b: 48 c1 e8 3f shr $0x3f,%rax
f: 48 c1 fa 02 sar $0x2,%rdx
13: 48 01 d0 add %rdx,%rax
16: 48 d1 f8 sar %rax
19: 48 8d 5c 85 00 lea 0x0(%rbp,%rax,4),%rbx
1e: 48 89 d8 mov %rbx,%rax
21: 48 c1 e8 03 shr $0x3,%rax
25: 42 0f b6 14 38 movzbl (%rax,%r15,1),%edx
* 2a: 48 89 d8 mov %rbx,%rax <-- trapping instruction
2d: 83 e0 07 and $0x7,%eax
30: 83 c0 03 add $0x3,%eax
33: 38 d0 cmp %dl,%al
35: 7c 04 jl 0x3b
37: 84 d2 test %dl,%dl
39: 75 48 jne 0x83
3b: 48 63 03 movslq (%rbx),%rax
3e: 48 rex.W
3f: 01 .byte 0x1