The lengcy guests don't have mac programming command, we don't know when it's safe to use MAC. This patch changed qemu to makes MAC change effect when the last byte of MAC is written to config space. MAC address takes first 6 bytes of config space of virtio-net, the addr is 5 when the last byte is written in virtio_config_writeb(). MAC change will effect when n->mac is updated in virtio_net_set_config(). Signed-off-by: Amos Kong <akong@xxxxxxxxxx> --- hw/virtio.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/hw/virtio.c b/hw/virtio.c index 26fbc79..2e08302 100644 --- a/hw/virtio.c +++ b/hw/virtio.c @@ -605,8 +605,9 @@ void virtio_config_writeb(VirtIODevice *vdev, uint32_t addr, uint32_t data) stb_p(vdev->config + addr, val); - if (vdev->set_config) + if (vdev->set_config && (addr == 5 || strcmp(vdev->name, "virtio-net"))) { vdev->set_config(vdev, vdev->config); + } } void virtio_config_writew(VirtIODevice *vdev, uint32_t addr, uint32_t data) -- 1.7.1 _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization