Re: [syzbot] [virt?] INFO: trying to register non-static key in stats_request (2)

From: David Hildenbrand (Arm)

Date: Mon Aug 24 2026 - 09:06:35 EST


On 8/22/26 02:11, syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 8d3ae59288f1 Linux 7.2
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=10240679580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=4c9eb8e593cf8c5c
> dashboard link: https://syzkaller.appspot.com/bug?extid=13df72e0dc4be5c62215
> compiler: Debian clang version 22.1.8 (++20260613092233+e80beda6e255-1~exp1~20260613092250.77), Debian LLD 22.1.8
>

virtio-balloon in an RT kernel/environment, unlikely in pactice ... :)

> Unfortunately, I don't have any reproducer for this issue yet.
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/cd49b631c498/disk-8d3ae592.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/05d3ad83c130/vmlinux-8d3ae592.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/3a2efa4a6769/bzImage-8d3ae592.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+13df72e0dc4be5c62215@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> INFO: trying to register non-static key.
> The code is fine but needs lockdep annotation, or maybe
> you didn't initialize this object before use?
> turning off the locking correctness validator.
> CPU: 0 UID: 0 PID: 20235 Comm: irq/10-virtio2 Tainted: G L syzkaller #0 PREEMPT_{RT,(full)}
> Tainted: [L]=SOFTLOCKUP
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026
> Call Trace:
> <TASK>
> dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
> assign_lock_key+0x133/0x150 kernel/locking/lockdep.c:984
> register_lock_class+0xcc/0x2e0 kernel/locking/lockdep.c:1299
> __lock_acquire+0xab/0x2ce0 kernel/locking/lockdep.c:5112
> lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
> rt_spin_lock+0x83/0x400 kernel/locking/spinlock_rt.c:56
> spin_lock include/linux/spinlock_rt.h:45 [inline]
> start_wakeup_event drivers/virtio/virtio_balloon.c:150 [inline]
> stats_request+0xa5/0x1f0 drivers/virtio/virtio_balloon.c:435


I don't really understand what's happening here, Is the register_lock_class()
trying to reguster a non-static key?

I don't immediately see how virtio-balloon is doing something odd here, all it
does is a spin_lock_irqsave(&vb->wakeup_lock, flags), that was earlier
initialized with spin_lock_init(&vb->wakeup_lock), before the device was ready.

--
Cheers,

David