[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] rtl8139: Do not consume the packet during o
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] rtl8139: Do not consume the packet during overflow in standard mode. |
Date: |
Wed, 26 Aug 2015 13:18:23 +0100 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Fri, Aug 21, 2015 at 02:59:24PM -0700, Vladislav Yasevich wrote:
> 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 <address@hidden>
> ---
> 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 edbb61c..359e001 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;
Every .receive() return 0 must be paired with a
qemu_flush_queued_packets() call.
Is rtl8139_RxBufPtr_write() guaranteed to be called when the guest
refills rx buffers?