[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL for-2.4 2/9] e1000: flush packets when link comes up
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL for-2.4 2/9] e1000: flush packets when link comes up |
Date: |
Tue, 7 Jul 2015 13:38:18 +0100 |
e1000_can_receive() checks the link up status register bit. If the bit
is clear, packets will be queued and the peer may disable receive to
avoid wasting CPU reading packets that cannot be delivered. The queue
must be flushed once the link comes back up again.
This patch fixes broken e1000 receive with Mac OS X Snow Leopard guests
and tap networking. Flushing the queue invokes the async send callback,
which re-enables tap fd read.
Reported-by: Jonathan Liu <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
---
hw/net/e1000.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/net/e1000.c b/hw/net/e1000.c
index bab8e2a..5c6bcd0 100644
--- a/hw/net/e1000.c
+++ b/hw/net/e1000.c
@@ -185,6 +185,9 @@ e1000_link_up(E1000State *s)
{
s->mac_reg[STATUS] |= E1000_STATUS_LU;
s->phy_reg[PHY_STATUS] |= MII_SR_LINK_STATUS;
+
+ /* E1000_STATUS_LU is tested by e1000_can_receive() */
+ qemu_flush_queued_packets(qemu_get_queue(s->nic));
}
static bool
--
2.4.3
- [Qemu-devel] [PULL for-2.4 0/9] Net patches, Stefan Hajnoczi, 2015/07/07
- [Qemu-devel] [PULL for-2.4 1/9] rocker: fix memory leak, Stefan Hajnoczi, 2015/07/07
- [Qemu-devel] [PULL for-2.4 2/9] e1000: flush packets when link comes up,
Stefan Hajnoczi <=
- [Qemu-devel] [PULL for-2.4 3/9] vmxnet3: Fix incorrect small packet padding, Stefan Hajnoczi, 2015/07/07
- [Qemu-devel] [PULL for-2.4 4/9] rocker: don't queue receive pkts when port is disabled, Stefan Hajnoczi, 2015/07/07
- [Qemu-devel] [PULL for-2.4 5/9] rocker: fix misplaced break statement, Stefan Hajnoczi, 2015/07/07
- [Qemu-devel] [PULL for-2.4 6/9] rocker: fix missing break statements, Stefan Hajnoczi, 2015/07/07
- [Qemu-devel] [PULL for-2.4 7/9] rocker: return -1 when dropping packet on ingress, Stefan Hajnoczi, 2015/07/07
- [Qemu-devel] [PULL for-2.4 8/9] rocker: mark copy-to-cpu pkts as forwarding offloaded, Stefan Hajnoczi, 2015/07/07
- [Qemu-devel] [PULL for-2.4 9/9] rocker: tests: don't need to specify master/self when setting vlans, Stefan Hajnoczi, 2015/07/07
- Re: [Qemu-devel] [PULL for-2.4 0/9] Net patches, Peter Maydell, 2015/07/07