From f37343197708d90f119007ce5ecc2503be9c04c1 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Tue, 6 Mar 2012 00:02:23 +0100 Subject: [PATCH] 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 --- slirp/if.c | 11 +---------- slirp/slirp.c | 7 +------ slirp/slirp.h | 1 - 3 files changed, 2 insertions(+), 17 deletions(-) diff --git a/slirp/if.c b/slirp/if.c index f6e848a31..096cf6fd0 100644 --- a/slirp/if.c +++ b/slirp/if.c @@ -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 19d69eb62..bcffc3414 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 416d44a99..cbe8a3cd4 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 */ -- 2.39.2