Currently we only support to allocate 0xff mac-addresses,
if we start guest by pci-bridge/multiple-func, the macaddr
are not enough.

This patch extends the mac-address space to 0xffffffff

52:54:00:00:00:00 ~ 52:54:ff:ff:ff:ff

Signed-off-by: Amos Kong <ak...@redhat.com>
---
 net/net.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/net/net.c b/net/net.c
index f019da4..78bb080 100644
--- a/net/net.c
+++ b/net/net.c
@@ -153,10 +153,12 @@ void qemu_macaddr_default_if_unset(MACAddr *macaddr)
 realloc_mac:
     macaddr->a[0] = 0x52;
     macaddr->a[1] = 0x54;
-    macaddr->a[2] = 0x00;
-    macaddr->a[3] = 0x12;
-    macaddr->a[4] = 0x34;
-    macaddr->a[5] = 0x56 + index++;
+    macaddr->a[2] = 0x00 + ((0x120000 + 0x3400 + 0x56 + index) >> 24 & 0xff);
+    macaddr->a[3] = 0x12 + ((0x3400 + 0x56 + index) >> 16 & 0xff);
+    macaddr->a[4] = 0x34 + ((0x56 + index) >> 8 & 0xff);
+    macaddr->a[5] = 0x56 + (index & 0xff);
+
+    index++;
 
     QTAILQ_FOREACH(nc, &net_clients, next) {
         peer = nc->peer;
-- 
1.8.1.4


Reply via email to