aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/virtio/network/if_vtnet.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/virtio/network/if_vtnet.c')
-rw-r--r--sys/dev/virtio/network/if_vtnet.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/virtio/network/if_vtnet.c b/sys/dev/virtio/network/if_vtnet.c
index cff9fa5831f2..2bfa72734f9e 100644
--- a/sys/dev/virtio/network/if_vtnet.c
+++ b/sys/dev/virtio/network/if_vtnet.c
@@ -2900,6 +2900,11 @@ vtnet_stop(struct vtnet_softc *sc)
/* Only advisory. */
vtnet_disable_interrupts(sc);
+#ifdef DEV_NETMAP
+ /* Stop any pending txsync/rxsync and disable them. */
+ netmap_disable_all_rings(ifp);
+#endif /* DEV_NETMAP */
+
/*
* Stop the host adapter. This resets it to the pre-initialized
* state. It will not generate any interrupts until after it is
@@ -3165,6 +3170,11 @@ vtnet_init_locked(struct vtnet_softc *sc, int init_mode)
vtnet_update_link_status(sc);
callout_reset(&sc->vtnet_tick_ch, hz, vtnet_tick, sc);
+#ifdef DEV_NETMAP
+ /* Re-enable txsync/rxsync. */
+ netmap_enable_all_rings(ifp);
+#endif /* DEV_NETMAP */
+
return;
fail: