Patch e03b449cbddf (kvm tools: add status notification hook for virtio) converted virtio-net to use a new notification mechanism, but unfortunately left virtio-mmio behind. The direct consequence is that both arm and arm64 guests are left without any form of networking. Not good. Bring virtio-mmio into this brave new notified world, and feel the power of being able to ping again. Cc: Sasha Levin <sasha.levin@xxxxxxxxxx> Cc: Will Deacon <will.deacon@xxxxxxx> Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> --- tools/kvm/virtio/mmio.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/kvm/virtio/mmio.c b/tools/kvm/virtio/mmio.c index a4e4855..afa2692 100644 --- a/tools/kvm/virtio/mmio.c +++ b/tools/kvm/virtio/mmio.c @@ -144,16 +144,21 @@ static void virtio_mmio_config_out(u64 addr, void *data, u32 len, struct virtio_device *vdev) { struct virtio_mmio *vmmio = vdev->virtio; + struct kvm *kvm = vmmio->kvm; u32 val = 0; switch (addr) { case VIRTIO_MMIO_HOST_FEATURES_SEL: case VIRTIO_MMIO_GUEST_FEATURES_SEL: case VIRTIO_MMIO_QUEUE_SEL: - case VIRTIO_MMIO_STATUS: val = ioport__read32(data); *(u32 *)(((void *)&vmmio->hdr) + addr) = val; break; + case VIRTIO_MMIO_STATUS: + vmmio->hdr.status = ioport__read32(data); + if (vdev->ops->notify_status) + vdev->ops->notify_status(kvm, vmmio->dev, vmmio->hdr.status); + break; case VIRTIO_MMIO_GUEST_FEATURES: if (vmmio->hdr.guest_features_sel == 0) { val = ioport__read32(data); -- 1.8.2.3 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html