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
