diff --git a/sys/dev/pci/if_vioif.c b/sys/dev/pci/if_vioif.c index be4ca673e8ef..5b94c369b78d 100644 --- a/sys/dev/pci/if_vioif.c +++ b/sys/dev/pci/if_vioif.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_vioif.c,v 1.22 2016/02/09 08:32:11 ozaki-r Exp $ */ +/* $NetBSD: if_vioif.c,v 1.23 2016/05/17 10:05:31 pooka Exp $ */ /* * Copyright (c) 2010 Minoura Makoto. @@ -26,7 +26,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_vioif.c,v 1.22 2016/02/09 08:32:11 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_vioif.c,v 1.23 2016/05/17 10:05:31 pooka Exp $"); #ifdef _KERNEL_OPT #include "opt_net_mpsafe.h" @@ -1116,6 +1116,7 @@ vioif_tx_vq_done(struct virtqueue *vq) { struct virtio_softc *vsc = vq->vq_owner; struct vioif_softc *sc = device_private(vsc->sc_child); + struct ifnet *ifp = &sc->sc_ethercom.ec_if; int r = 0; VIOIF_TX_LOCK(sc); @@ -1127,6 +1128,8 @@ vioif_tx_vq_done(struct virtqueue *vq) out: VIOIF_TX_UNLOCK(sc); + if (r) + vioif_start(ifp); return r; }