smc91c111: Fix receive starvation

In case the smc91c111 interface signals that it cannot receive more
packets the packets are queued and further reception will be disabled.
In case the interface is again ready to receive packets notify the upper
layer.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Sebastian Huber 2013-11-14 14:53:46 +01:00 committed by Stefan Hajnoczi
parent 5c5432e7d6
commit 8b7acc79b9
1 changed files with 1 additions and 0 deletions

View File

@ -185,6 +185,7 @@ static void smc91c111_release_packet(smc91c111_state *s, int packet)
s->allocated &= ~(1 << packet);
if (s->tx_alloc == 0x80)
smc91c111_tx_alloc(s);
qemu_flush_queued_packets(qemu_get_queue(s->nic));
}
/* Flush the TX FIFO. */