diff options
author | Sepherosa Ziehau <sephe@FreeBSD.org> | 2016-04-01 06:28:33 +0000 |
---|---|---|
committer | Sepherosa Ziehau <sephe@FreeBSD.org> | 2016-04-01 06:28:33 +0000 |
commit | 6dd38b8716bd9c53029707749f00ced53c5ceb7c (patch) | |
tree | 35cb00c20034dc9b981e3d82e79fbab135221de3 /sys/dev/oce | |
parent | 04c247a1d073b57419345ae83581f2cb4db7d61f (diff) | |
download | src-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.c | 6 |
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; |