From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35017) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZJipQ-0004cv-Mk for qemu-devel@nongnu.org; Mon, 27 Jul 2015 09:52:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZJipM-00065g-LE for qemu-devel@nongnu.org; Mon, 27 Jul 2015 09:52:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43346) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZJipM-00065Z-GD for qemu-devel@nongnu.org; Mon, 27 Jul 2015 09:52:24 -0400 From: Stefan Hajnoczi Date: Mon, 27 Jul 2015 14:51:56 +0100 Message-Id: <1438005121-31153-12-git-send-email-stefanha@redhat.com> In-Reply-To: <1438005121-31153-1-git-send-email-stefanha@redhat.com> References: <1438005121-31153-1-git-send-email-stefanha@redhat.com> Subject: [Qemu-devel] [PULL for-2.4 11/16] mcf_fec: Drop mcf_fec_can_receive List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , Fam Zheng , Stefan Hajnoczi From: Fam Zheng The semantics of .can_receive requires us to flush the queue explicitly when s->rx_enabled becomes true after it returns 0, but the packet being queued is not meaningful since the guest hasn't activated the card. Let's just drop the packet in this case. Signed-off-by: Fam Zheng Reviewed-by: Stefan Hajnoczi Reviewed-by: Jason Wang Message-id: 1436955553-22791-8-git-send-email-famz@redhat.com Signed-off-by: Stefan Hajnoczi --- hw/net/mcf_fec.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/hw/net/mcf_fec.c b/hw/net/mcf_fec.c index e63af1b..4e6939f 100644 --- a/hw/net/mcf_fec.c +++ b/hw/net/mcf_fec.c @@ -397,12 +397,6 @@ static void mcf_fec_write(void *opaque, hwaddr addr, mcf_fec_update(s); } -static int mcf_fec_can_receive(NetClientState *nc) -{ - mcf_fec_state *s = qemu_get_nic_opaque(nc); - return s->rx_enabled; -} - static ssize_t mcf_fec_receive(NetClientState *nc, const uint8_t *buf, size_t size) { mcf_fec_state *s = qemu_get_nic_opaque(nc); @@ -417,7 +411,7 @@ static ssize_t mcf_fec_receive(NetClientState *nc, const uint8_t *buf, size_t si DPRINTF("do_rx len %d\n", size); if (!s->rx_enabled) { - fprintf(stderr, "mcf_fec_receive: Unexpected packet\n"); + return -1; } /* 4 bytes for the CRC. */ size += 4; @@ -490,7 +484,6 @@ static const MemoryRegionOps mcf_fec_ops = { static NetClientInfo net_mcf_fec_info = { .type = NET_CLIENT_OPTIONS_KIND_NIC, .size = sizeof(NICState), - .can_receive = mcf_fec_can_receive, .receive = mcf_fec_receive, }; -- 2.4.3