From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N0ZOE-0006mm-Lm for qemu-devel@nongnu.org; Wed, 21 Oct 2009 07:30:04 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N0ZO7-0006hw-N4 for qemu-devel@nongnu.org; Wed, 21 Oct 2009 07:30:00 -0400 Received: from [199.232.76.173] (port=57339 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N0ZO3-0006fC-Pr for qemu-devel@nongnu.org; Wed, 21 Oct 2009 07:29:51 -0400 Received: from mx1.redhat.com ([209.132.183.28]:13421) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1N0ZO2-0002xd-Hy for qemu-devel@nongnu.org; Wed, 21 Oct 2009 07:29:50 -0400 Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n9LBTnId015712 for ; Wed, 21 Oct 2009 07:29:49 -0400 From: Mark McLoughlin Date: Wed, 21 Oct 2009 12:27:51 +0100 Message-Id: <1256124478-2988-13-git-send-email-markmc@redhat.com> In-Reply-To: <1256124478-2988-1-git-send-email-markmc@redhat.com> References: <1256124478-2988-1-git-send-email-markmc@redhat.com> Subject: [Qemu-devel] [PATCH 12/19] net: use qemu_send_packet_raw() in qemu_announce_self() List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Mark McLoughlin , Gleb Natapov From: Gleb Natapov 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 --- savevm.c | 7 +------ 1 files changed, 1 insertions(+), 6 deletions(-) diff --git a/savevm.c b/savevm.c index 99aa15a..ac1ef42 100644 --- a/savevm.c +++ b/savevm.c @@ -114,8 +114,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[256]; static int count = SELF_ANNOUNCE_ROUNDS; QEMUTimer *timer = *(QEMUTimer **)opaque; @@ -124,10 +122,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--) { qemu_mod_timer(timer, qemu_get_clock(rt_clock) + 100); -- 1.6.2.5