From 300719dc2c857494afbae90ce8e1d7a530bb0b64 Mon Sep 17 00:00:00 2001 From: Gleb Natapov Date: Thu, 22 Oct 2009 17:43:43 +0100 Subject: [PATCH] net: use qemu_send_packet_raw() in qemu_announce_self() Use qemu_send_packet_raw to send gratuitous arp. This will ensure that vnet header is handled properly. Also, avoid sending the gratuitous packet to the guest. There doesn't appear to be any reason for doing that and the code will currently just crash if the NIC is not associated with a vlan. Signed-off-by: Gleb Natapov Signed-off-by: Mark McLoughlin Signed-off-by: Anthony Liguori --- savevm.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/savevm.c b/savevm.c index 95b77f3..b7abf43 100644 --- a/savevm.c +++ b/savevm.c @@ -126,8 +126,6 @@ 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; @@ -136,10 +134,7 @@ static void qemu_announce_self_once(void *opaque) if (!nd_table[i].used) continue; len = announce_self_create(buf, nd_table[i].macaddr); - vlan = nd_table[i].vlan; - QTAILQ_FOREACH(vc, &vlan->clients, next) { - vc->receive(vc, buf, len); - } + qemu_send_packet_raw(nd_table[i].vc, buf, len); } if (--count) { /* delay 50ms, 150ms, 250ms, ... */ -- 2.7.4