Four independent fixes across the virtio subsystem: 1. virtio-mmio: vm_reset() returns without polling for the status register to read back as 0, violating the spec. Add a poll loop matching the existing pattern in virtio-pci's vp_reset().
2. virtio-pci: vp_find_vqs_intx() uses a sequential counter instead of avq->vq_index for the admin VQ, unlike the MSI-X path. 3. virtio-pci: vp_interrupt() returns IRQ_NONE for config-change-only interrupts because it unconditionally returns vp_vring_interrupt()'s result. Track the config-change handling and return IRQ_HANDLED. 4. virtio_ring: vring_transport_features() clears VIRTIO_F_RING_RESET during feature negotiation because it is missing from the whitelist. Andrew Stellman (4): virtio-mmio: wait for status readback after reset virtio-pci: use avq->vq_index for admin VQ in INTx path virtio-pci: return IRQ_HANDLED for config-change interrupts virtio_ring: preserve VIRTIO_F_RING_RESET in transport features drivers/virtio/virtio_mmio.c | 3 +++ drivers/virtio/virtio_pci_common.c | 12 +++++++++--- drivers/virtio/virtio_ring.c | 2 ++ 3 files changed, 14 insertions(+), 3 deletions(-) -- 2.34.1
