For VDPA devices, Allow configurations where both the hardware MAC address and QEMU command line MAC address are zero.
Signed-off-by: Cindy Lu <l...@redhat.com> --- hw/net/virtio-net.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 45b63eb9de..6c6bd116f7 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -3784,6 +3784,18 @@ static bool virtio_net_check_vdpa_mac(NetClientState *nc, VirtIONet *n, return true; } } + /* + * 3. The hardware MAC address is 0, + * and the MAC address in the QEMU command line is also 0. + * In this situation, QEMU generates a random MAC address and + * uses CVQ/set_config to assign it to the device. + */ + if ((memcmp(&hwcfg.mac, &zero, sizeof(MACAddr)) == 0) && + (memcmp(cmdline_mac, &zero, sizeof(MACAddr)) == 0)) { + memcpy(&n->mac[0], &n->nic_conf.macaddr, sizeof(n->mac)); + + return true; + } error_setg(errp, "vDPA device's MAC address %02x:%02x:%02x:%02x:%02x:%02x " "is not the same as the QEMU command line MAC address " -- 2.45.0