aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/oce
diff options
context:
space:
mode:
authorSepherosa Ziehau <sephe@FreeBSD.org>2016-04-01 06:28:33 +0000
committerSepherosa Ziehau <sephe@FreeBSD.org>2016-04-01 06:28:33 +0000
commit6dd38b8716bd9c53029707749f00ced53c5ceb7c (patch)
tree35cb00c20034dc9b981e3d82e79fbab135221de3 /sys/dev/oce
parent04c247a1d073b57419345ae83581f2cb4db7d61f (diff)
downloadsrc-6dd38b8716bd9c53029707749f00ced53c5ceb7c.tar.gz
src-6dd38b8716bd9c53029707749f00ced53c5ceb7c.zip
tcp/lro: Use tcp_lro_flush_all in device drivers to avoid code duplication
And factor out tcp_lro_rx_done, which deduplicates the same logic with netinet/tcp_lro.c Reviewed by: gallatin (1st version), hps, zbb, np, Dexuan Cui <decui microsoft com> Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5725
Notes
Notes: svn path=/head/; revision=297482
Diffstat (limited to 'sys/dev/oce')
-rw-r--r--sys/dev/oce/oce_if.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/sys/dev/oce/oce_if.c b/sys/dev/oce/oce_if.c
index f0cce5f6e0d1..370461291234 100644
--- a/sys/dev/oce/oce_if.c
+++ b/sys/dev/oce/oce_if.c
@@ -1497,16 +1497,12 @@ static void
oce_rx_flush_lro(struct oce_rq *rq)
{
struct lro_ctrl *lro = &rq->lro;
- struct lro_entry *queued;
POCE_SOFTC sc = (POCE_SOFTC) rq->parent;
if (!IF_LRO_ENABLED(sc))
return;
- while ((queued = SLIST_FIRST(&lro->lro_active)) != NULL) {
- SLIST_REMOVE_HEAD(&lro->lro_active, next);
- tcp_lro_flush(lro, queued);
- }
+ tcp_lro_flush_all(lro);
rq->lro_pkts_queued = 0;
return;