Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:GA
xen.787
0008-e1000-check-buffer-availability.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0008-e1000-check-buffer-availability.patch of Package xen.787
From: "Michael S. Tsirkin" <mst@redhat.com> Date: Sun, 27 Mar 2011 13:37:35 +0200 Subject: e1000: check buffer availability Patch-mainline: v0.15.0-rc0 Git-commit: 6cdfab2868dd593902e2b7db3ba9f49f2cc03e3f References: bnc#840196 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 <mst@redhat.com> Acked-by: Michal Kubecek <mkubecek@suse.cz> --- tools/qemu-xen-traditional-dir-remote/hw/e1000.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/tools/qemu-xen-traditional-dir-remote/hw/e1000.c b/tools/qemu-xen-traditional-dir-remote/hw/e1000.c index 18d7597..b07c6cb 100644 --- a/tools/qemu-xen-traditional-dir-remote/hw/e1000.c +++ b/tools/qemu-xen-traditional-dir-remote/hw/e1000.c @@ -614,14 +614,6 @@ e1000_set_link_status(VLANClientState *vc) set_ics(s, 0, E1000_ICR_LSC); } -static int -e1000_can_receive(void *opaque) -{ - E1000State *s = opaque; - - return (s->mac_reg[RCTL] & E1000_RCTL_EN && s->mac_reg[RDLEN] != 0); -} - static bool e1000_has_rxbufs(E1000State *s, size_t total_size) { int bufs; @@ -640,6 +632,15 @@ static bool e1000_has_rxbufs(E1000State *s, size_t total_size) return total_size <= bufs * s->rxbuf_size; } +static int +e1000_can_receive(void *opaque) +{ + E1000State *s = opaque; + + return (s->mac_reg[RCTL] & E1000_RCTL_EN) && (s->mac_reg[RDLEN] != 0) && + e1000_has_rxbufs(s, 1); +} + static void e1000_receive(void *opaque, const uint8_t *buf, int size) { -- 1.8.1.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor