Elektrine lite

← Feed

@ammarfaizi2@hiradai.space

2026-03-13 07:22 UTC

@ammarfaizi2@social.gnuweeb.org @yuka@s.umeyashiki.org [ Moving to my Sharkey account as Mastodon doesn't support writing in markdown format. ] I have narrowed it down, using scripts/decode_stacktrace.sh, it results in the following disassembly: [ 264.567431] Code: [[snip]] cc cc cc cc 41 57 41 56 53 8b 1f 48 85 db 74 38 4c 8b 77 08 4d 85 f6 74 40 49 bf 00 01 00 ======== 21: cc int3 22: cc int3 23: cc int3 24: cc int3 25: 41 57 push %r15 27: 41 56 push %r14 29: 53 push %rbx 2a:*48 8b 1f mov (%rdi),%rbx node); where info is a pointer to struct virtio_pci_vq_info. https://elixir.bootlin.com/linux/v6.19.7/source/drivers/virtio/virtio_pci_common.c#L258 That means the info pointer in vp_del_vq() is NULL. %rdi is the first argument to __list_del_entry_valid_or_report(). There is a load to the next pointer of the struct list_head, this is where the NULL ptr dereference happens. https://elixir.bootlin.com/linux/v6.19.7/source/lib/list_debug.c#L49-L50

Replies (1)

  • @ammarfaizi2@hiradai.space 2026-03-13 07:48

    @ammarfaizi2@social.gnuweeb.org @yuka@s.umeyashiki.org Can you try this patch and see if it's a cure? diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c index d6d79af44569..ba6901d1efb9 100644 --- a/drivers/virtio/virtio_pci_common.c +++ b/drivers/virtio/virtio_pci_common.c @@ -285,7 +285,9 @@ void vp_del_vqs(struct virtio_device *vdev) free_irq(irq, vq); } } - vp_del_vq(vq, info); + + if (info) + vp_del_vq(vq, info); } vp_dev->per_vq_vectors = false;

    Open ##3421611