[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH] Fix incoming migration
From: |
Mark McLoughlin |
Subject: |
[Qemu-devel] Re: [PATCH] Fix incoming migration |
Date: |
Tue, 10 Nov 2009 17:08:36 +0000 |
On Tue, 2009-11-10 at 18:03 +0100, Juan Quintela wrote:
> Mark McLoughlin <address@hidden> wrote:
> > On Fri, 2009-11-06 at 15:58 +0100, Juan Quintela wrote:
> >> commit b04c4134d6de28c249277de19e523bfbe4aebbd6
> >> broke incoming migration. After talking with Gleb, code was intended
> >> to be the way is in this fix. This fixes migration here.
> >
> > Tried to reproduce and it works fine for me. More details?
> >
> >> Signed-off-by: Juan Quintela <address@hidden>
> >> ---
> >> savevm.c | 7 ++++++-
> >> 1 files changed, 6 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/savevm.c b/savevm.c
> >> index b7abf43..fd98ccd 100644
> >> --- a/savevm.c
> >> +++ b/savevm.c
> >> @@ -126,6 +126,8 @@ static int announce_self_create(uint8_t *buf,
> >> static void qemu_announce_self_once(void *opaque)
> >> {
> >> int i, len;
> >> + VLANState *vlan;
> >> + VLANClientState *vc;
> >> uint8_t buf[60];
> >> static int count = SELF_ANNOUNCE_ROUNDS;
> >> QEMUTimer *timer = *(QEMUTimer **)opaque;
> >> @@ -134,7 +136,10 @@ static void qemu_announce_self_once(void *opaque)
> >> if (!nd_table[i].used)
> >> continue;
> >> len = announce_self_create(buf, nd_table[i].macaddr);
> >> - qemu_send_packet_raw(nd_table[i].vc, buf, len);
> >> + vlan = nd_table[i].vlan;
> >> + QTAILQ_FOREACH(vc, &vlan->clients, next) {
> >> + qemu_send_packet_raw(vc, buf, len);
> >> + }
> >
> > A NIC isn't necessarily connected to a vlan any more, which is why the
> > change was made.
> >
> > With your patch, I'd expect it to crash if you used -netdev rather than
> > -net
>
> Without this patch, migration don't work at all. nd_table[i].vc is NULL
> at this point. Any better idea?
Right, I can't reproduce that. Exactly what command line did you use?
Thanks,
Mark.