On Thu, Nov 05, 2026 at 11:19:23AM +0100, Stefano Garzarella wrote:
>On Wed, Nov 04, 2026 at 05:26:43PM +0100, Jerome Mohm via B4 Relay wrote:
>>Clear vqs[] after del_vqs() and when virtio_find_vqs() fails. Return
>>early from virtio_vsock_vqs_del() when vqs[] is empty: a second
>>del_vqs() would free virtio-mmio's IRQ again ("Trying to free
>>already-free IRQ").
>
>Is this an issue or just a warning?

Just a warning: free_irq() finds no action for the IRQ, WARNs and
returns without freeing anything. That taints the kernel, and panics
only with panic_on_warn or at kernel.warn_limit. v4 says WARN in the
message.

>>+    virtio_vsock_skb_queue_purge(&vsock->send_pkt_queue);
>
>I'd prefer to move this before the virtio_reset_device(), because the
>comment on top of that is related also to the next steps (detach unused
>buffers), so having this in the middle is not really readable.

Sure, v4 moves it right before virtio_reset_device().

>>+    /* After a failed restore no virtqueues are live, and a second
>>+     * del_vqs() would free virtio-mmio's IRQ again.
>
>What will be the issue of freeing virtio-mmio's IRQ again?

Only that WARN. The early return is needed anyway: with vqs[] cleared,
the detach loops below would pass NULL to
virtqueue_detach_unused_buf(). I'll say that in the v4 message too.

Thanks,
Jerome


Reply via email to