diff mbox

net: fix default MAC assignment for hotplugged NICs

Message ID 20110728151216.GA18809@amt.cnet
State New
Headers show

Commit Message

Marcelo Tosatti July 28, 2011, 3:12 p.m. UTC
The index for assignment of default MAC address is duplicated:
qemu_macaddr_default_if_unset has its own variable and net_init_nic uses
the nic table index.

This leads to assignment of same MAC addresses to NICs initialized via
command line and hotplugged ones.

Fix by not assigning default MAC address in net_init_nic, leaving
that job to qemu_macaddr_default_if_unset.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Reported-by: Amos Kong <akong@redhat.com>
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=712046

Comments

Peter Maydell July 28, 2011, 3:22 p.m. UTC | #1
On 28 July 2011 16:12, Marcelo Tosatti <mtosatti@redhat.com> wrote:
>
> The index for assignment of default MAC address is duplicated:
> qemu_macaddr_default_if_unset has its own variable and net_init_nic uses
> the nic table index.

Isn't this already fixed by commit 6eed18568d ?

-- PMM
Marcelo Tosatti July 28, 2011, 3:26 p.m. UTC | #2
On Thu, Jul 28, 2011 at 04:22:09PM +0100, Peter Maydell wrote:
> On 28 July 2011 16:12, Marcelo Tosatti <mtosatti@redhat.com> wrote:
> >
> > The index for assignment of default MAC address is duplicated:
> > qemu_macaddr_default_if_unset has its own variable and net_init_nic uses
> > the nic table index.
> 
> Isn't this already fixed by commit 6eed18568d ?
> 
> -- PMM

Yes, thanks for pointing out.
diff mbox

Patch

diff --git a/net.c b/net.c
index 66123ad..f34400c 100644
--- a/net.c
+++ b/net.c
@@ -776,13 +776,6 @@  static int net_init_nic(QemuOpts *opts,
         nd->devaddr = qemu_strdup(qemu_opt_get(opts, "addr"));
     }
 
-    nd->macaddr[0] = 0x52;
-    nd->macaddr[1] = 0x54;
-    nd->macaddr[2] = 0x00;
-    nd->macaddr[3] = 0x12;
-    nd->macaddr[4] = 0x34;
-    nd->macaddr[5] = 0x56 + idx;
-
     if (qemu_opt_get(opts, "macaddr") &&
         net_parse_macaddr(nd->macaddr, qemu_opt_get(opts, "macaddr")) < 0) {
         error_report("invalid syntax for ethernet address");