From 9318bd2b84409c6f3810d410c6918fefec072408 Mon Sep 17 00:00:00 2001 From: Vlad Yasevich Date: Wed, 16 Dec 2015 02:58:23 +0100 Subject: [PATCH 6/6] rtl8139: Do not consume the packet during overflow in standard mode. Message-id: <1450234703-7606-3-git-send-email-vyasevic@redhat.com> Patchwork-id: 68618 O-Subject: [RHEL7.3 qemu-kvm PATCH 2/2] rtl8139: Do not consume the packet during overflow in standard mode. Bugzilla: 1252757 RH-Acked-by: Thomas Huth RH-Acked-by: Michael S. Tsirkin RH-Acked-by: Xiao Wang 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 Reviewed-by: Jason Wang Message-id: 1441121206-6997-3-git-send-email-vyasevic@redhat.com Signed-off-by: Stefan Hajnoczi (cherry picked from commit 26c4e7ca72d970d120f0f51244bc8d37458512a0) Signed-off-by: Vladislav Yasevich Signed-off-by: Miroslav Rezanina --- hw/net/rtl8139.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c index 6a167df..aa2503d 100644 --- a/hw/net/rtl8139.c +++ b/hw/net/rtl8139.c @@ -1148,7 +1148,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; -- 1.8.3.1