On Tue, 2009-11-10 at 18:03 +0100, Juan Quintela wrote: > Mark McLoughlin <mar...@redhat.com> 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 <quint...@redhat.com> > >> --- > >> 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.