From: Jan Kiszka Date: Fri, 2 Aug 2013 19:48:18 +0000 (+0200) Subject: pcnet: Flush queued packets on end of STOP state X-Git-Tag: v1.6.0-rc2~24^2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=ee76c1f821e75550644e084dea85743bbc934f91;p=users%2Fdwmw2%2Fqemu.git pcnet: Flush queued packets on end of STOP state Analogously to other NICs, we have to inform the network layer when the can_receive handler will no longer report 0. Without this, we may get stuck waiting on queued incoming packets. Signed-off-by: Jan Kiszka Signed-off-by: Stefan Hajnoczi --- diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c index b606d2be3b..63aa73a241 100644 --- a/hw/net/pcnet.c +++ b/hw/net/pcnet.c @@ -861,6 +861,8 @@ static void pcnet_init(PCNetState *s) s->csr[0] |= 0x0101; s->csr[0] &= ~0x0004; /* clear STOP bit */ + + qemu_flush_queued_packets(qemu_get_queue(s->nic)); } static void pcnet_start(PCNetState *s) @@ -878,6 +880,8 @@ static void pcnet_start(PCNetState *s) s->csr[0] &= ~0x0004; /* clear STOP bit */ s->csr[0] |= 0x0002; pcnet_poll_timer(s); + + qemu_flush_queued_packets(qemu_get_queue(s->nic)); } static void pcnet_stop(PCNetState *s)