aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladislav Yasevich <vyasevic@redhat.com>2015-09-01 11:26:46 -0400
committerStefan Hajnoczi <stefanha@redhat.com>2015-09-02 13:42:31 +0100
commit26c4e7ca72d970d120f0f51244bc8d37458512a0 (patch)
tree77a907039f026608fccb91362ee5ab6b94bb6a19
parentfabdcd3392f16fc666b1d04fc1bbe5f1dbbf10a4 (diff)
rtl8139: Do not consume the packet during overflow in standard mode.
When operation in standard mode, we currently return the size of packet during buffer overflow. This consumes the overflow packet. Return 0 instead so we can re-process the overflow packet when we have room. This fixes issues with lost/dropped fragments of large messages. Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com> Reviewed-by: Jason Wang <jasowang@redhat.com> Message-id: 1441121206-6997-3-git-send-email-vyasevic@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rw-r--r--hw/net/rtl8139.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c
index 960580b910..fb2c55ce0b 100644
--- a/hw/net/rtl8139.c
+++ b/hw/net/rtl8139.c
@@ -1157,7 +1157,7 @@ static ssize_t rtl8139_do_receive(NetClientState *nc, const uint8_t *buf, size_t
s->IntrStatus |= RxOverflow;
++s->RxMissed;
rtl8139_update_irq(s);
- return size_;
+ return 0;
}
packet_header |= RxStatusOK;