This revision was automatically updated to reflect the committed changes.
Closed by commit rS295305: hyperv/hn: Move LRO flush to the channel processing 
rollup (authored by sephe).

CHANGED PRIOR TO COMMIT
  https://reviews.freebsd.org/D5167?vs=12948&id=13039#toc

REPOSITORY
  rS FreeBSD src repository

CHANGES SINCE LAST UPDATE
  https://reviews.freebsd.org/D5167?vs=12948&id=13039

REVISION DETAIL
  https://reviews.freebsd.org/D5167

AFFECTED FILES
  head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c

CHANGE DETAILS
  diff --git a/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c 
b/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  --- a/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  +++ b/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  @@ -764,6 +764,15 @@
   netvsc_channel_rollup(struct hv_device *device_ctx)
   {
        struct hn_softc *sc = device_get_softc(device_ctx->device);
  +#if defined(INET) || defined(INET6)
  +     struct lro_ctrl *lro = &sc->hn_lro;
  +     struct lro_entry *queued;
  +
  +     while ((queued = SLIST_FIRST(&lro->lro_active)) != NULL) {
  +             SLIST_REMOVE_HEAD(&lro->lro_active, next);
  +             tcp_lro_flush(lro, queued);
  +     }
  +#endif
   
        if (!sc->hn_txeof)
                return;
  @@ -1338,18 +1347,8 @@
   }
   
   void
  -netvsc_recv_rollup(struct hv_device *device_ctx)
  +netvsc_recv_rollup(struct hv_device *device_ctx __unused)
   {
  -#if defined(INET) || defined(INET6)
  -     hn_softc_t *sc = device_get_softc(device_ctx->device);
  -     struct lro_ctrl *lro = &sc->hn_lro;
  -     struct lro_entry *queued;
  -
  -     while ((queued = SLIST_FIRST(&lro->lro_active)) != NULL) {
  -             SLIST_REMOVE_HEAD(&lro->lro_active, next);
  -             tcp_lro_flush(lro, queued);
  -     }
  -#endif
   }
   
   /*

EMAIL PREFERENCES
  https://reviews.freebsd.org/settings/panel/emailpreferences/

To: sepherosa_gmail.com, delphij, royger, decui_microsoft.com, 
honzhan_microsoft.com, howard0su_gmail.com, adrian, network
Cc: freebsd-net-list
diff --git a/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c b/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
--- a/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
+++ b/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
@@ -764,6 +764,15 @@
 netvsc_channel_rollup(struct hv_device *device_ctx)
 {
 	struct hn_softc *sc = device_get_softc(device_ctx->device);
+#if defined(INET) || defined(INET6)
+	struct lro_ctrl *lro = &sc->hn_lro;
+	struct lro_entry *queued;
+
+	while ((queued = SLIST_FIRST(&lro->lro_active)) != NULL) {
+		SLIST_REMOVE_HEAD(&lro->lro_active, next);
+		tcp_lro_flush(lro, queued);
+	}
+#endif
 
 	if (!sc->hn_txeof)
 		return;
@@ -1338,18 +1347,8 @@
 }
 
 void
-netvsc_recv_rollup(struct hv_device *device_ctx)
+netvsc_recv_rollup(struct hv_device *device_ctx __unused)
 {
-#if defined(INET) || defined(INET6)
-	hn_softc_t *sc = device_get_softc(device_ctx->device);
-	struct lro_ctrl *lro = &sc->hn_lro;
-	struct lro_entry *queued;
-
-	while ((queued = SLIST_FIRST(&lro->lro_active)) != NULL) {
-		SLIST_REMOVE_HEAD(&lro->lro_active, next);
-		tcp_lro_flush(lro, queued);
-	}
-#endif
 }
 
 /*

_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to