From: kettenis Date: Thu, 8 Oct 2015 09:21:26 +0000 (+0000) Subject: Call em_start() when we detect a link state change such that packets start X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=ca7012595ad08c920587c19c032fc905a369a2fd;p=openbsd Call em_start() when we detect a link state change such that packets start flowing again even if the send queue is currently full. Restores the fix made by makeb@ in rev 1.263 which was lost in making the tx completion path mpsafe. ok mikeb@ --- diff --git a/sys/dev/pci/if_em.c b/sys/dev/pci/if_em.c index 9b860d5a72f..f2ddb32052c 100644 --- a/sys/dev/pci/if_em.c +++ b/sys/dev/pci/if_em.c @@ -31,7 +31,7 @@ POSSIBILITY OF SUCH DAMAGE. ***************************************************************************/ -/* $OpenBSD: if_em.c,v 1.307 2015/10/06 15:21:16 kettenis Exp $ */ +/* $OpenBSD: if_em.c,v 1.308 2015/10/08 09:21:26 kettenis Exp $ */ /* $FreeBSD: if_em.c,v 1.46 2004/09/29 18:28:28 mlaier Exp $ */ #include @@ -926,6 +926,8 @@ em_intr(void *arg) sc->hw.get_link_status = 1; em_check_for_link(&sc->hw); em_update_link_status(sc); + if (!IFQ_IS_EMPTY(&ifp->if_snd)) + em_start(ifp); KERNEL_UNLOCK(); }