e1000: check buffer availability
PATCH 1/1 e1000: check buffer availability
Reduce spurious packet drops on RX ring empty
by verifying that we have at least 1 buffer
ahead of the time.
Signed-off-by Michael S. Tsirkin <[email protected]>
--- hw/e1000.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-)
hw/e1000.c +8 -8
@@ -623,14 +623,6 @@ e1000_set_link_status(VLANClientState *nc)set_ics (s,0 ,E1000_ICR_LSC ); } -static int -e1000_can_receive (VLANClientState *nc) -{ -E1000State *s =DO_UPCAST (NICState, nc, nc)->opaque; - -return (s->mac_reg[RCTL ] &E1000_RCTL_EN ); -} -static bool e1000_has_rxbufs (E1000State *s,size_t total_size) {int bufs;
@@ -649,6 +641,14 @@ static bool e1000_has_rxbufs(E1000State *s, size_t total_size)return total_size <= bufs * s->rxbuf_size; } +static int +e1000_can_receive (VLANClientState *nc) +{ +E1000State *s =DO_UPCAST (NICState, nc, nc)->opaque; + +return (s->mac_reg[RCTL ] &E1000_RCTL_EN ) &&e1000_has_rxbufs (s,1 ); +} +static ssize_t e1000_receive (VLANClientState *nc,const uint8_t *buf,size_t size) {
Signature · 1 line
1.7.3.2.91.g446ac
Quoted 5 lines · Michael S. Tsirkin
Reduce spurious packet drops on RX ring empty
by verifying that we have at least 1 buffer
ahead of the time.Signed-off-by Michael S. Tsirkin <[email protected]>
Reviewed-by Juan Quintela <[email protected]>
Am 27.03.2011 17:01, schrieb Michael S. Tsirkin:
Quoted 5 lines
Reduce spurious packet drops on RX ring empty
by verifying that we have at least 1 buffer
ahead of the time.Signed-off-by Michael S. Tsirkin <[email protected]>
Acked-by Kevin Wolf <[email protected]>