diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2012-03-06 00:02:23 +0100 |
---|---|---|
committer | Jan Kiszka <jan.kiszka@siemens.com> | 2012-03-13 14:05:49 +0100 |
commit | f37343197708d90f119007ce5ecc2503be9c04c1 (patch) | |
tree | be52455e7c173229f8055b5858a9f87e0829081e /slirp | |
parent | e3078bf40a33b59fa11d077b1d0bb8796470982e (diff) | |
download | qemu-f37343197708d90f119007ce5ecc2503be9c04c1.zip qemu-f37343197708d90f119007ce5ecc2503be9c04c1.tar.gz qemu-f37343197708d90f119007ce5ecc2503be9c04c1.tar.bz2 |
slirp: Remove unneeded if_queued
There is now a trivial check on entry of if_start for pending packets,
so we can drop the additional tracking via if_queued.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Diffstat (limited to 'slirp')
-rw-r--r-- | slirp/if.c | 11 | ||||
-rw-r--r-- | slirp/slirp.c | 7 | ||||
-rw-r--r-- | slirp/slirp.h | 1 |
3 files changed, 2 insertions, 17 deletions
@@ -110,8 +110,6 @@ if_output(struct socket *so, struct mbuf *ifm) insque(ifm, ifq); diddit: - slirp->if_queued++; - if (so) { /* Update *_queued */ so->so_queued++; @@ -157,7 +155,6 @@ diddit: void if_start(Slirp *slirp) { uint64_t now = qemu_get_clock_ns(rt_clock); - int requeued = 0; bool from_batchq, next_from_batchq; struct mbuf *ifm, *ifm_next, *ifqt; @@ -182,8 +179,7 @@ void if_start(Slirp *slirp) while (ifm_next) { /* check if we can really output */ if (!slirp_can_output(slirp->opaque)) { - slirp->if_start_busy = false; - return; + break; } ifm = ifm_next; @@ -200,12 +196,9 @@ void if_start(Slirp *slirp) ifm_next = NULL; } - slirp->if_queued--; - /* Try to send packet unless it already expired */ if (ifm->expiration_date >= now && !if_encap(slirp, ifm)) { /* Packet is delayed due to pending ARP resolution */ - requeued++; continue; } @@ -245,7 +238,5 @@ void if_start(Slirp *slirp) m_free(ifm); } - slirp->if_queued = requeued; - slirp->if_start_busy = false; } diff --git a/slirp/slirp.c b/slirp/slirp.c index 19d69eb..bcffc34 100644 --- a/slirp/slirp.c +++ b/slirp/slirp.c @@ -581,12 +581,7 @@ void slirp_select_poll(fd_set *readfds, fd_set *writefds, fd_set *xfds, } } - /* - * See if we can start outputting - */ - if (slirp->if_queued) { - if_start(slirp); - } + if_start(slirp); } /* clear global file descriptor sets. diff --git a/slirp/slirp.h b/slirp/slirp.h index 416d44a..cbe8a3c 100644 --- a/slirp/slirp.h +++ b/slirp/slirp.h @@ -235,7 +235,6 @@ struct Slirp { int mbuf_alloced; /* if states */ - int if_queued; /* number of packets queued so far */ struct mbuf if_fastq; /* fast queue (for interactive data) */ struct mbuf if_batchq; /* queue for non-interactive data */ struct mbuf *next_m; /* pointer to next mbuf to output */ |