diff options
-rw-r--r-- | sys/dev/pci/if_vr.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/sys/dev/pci/if_vr.c b/sys/dev/pci/if_vr.c index 34c6593281c..8b5e62edbc0 100644 --- a/sys/dev/pci/if_vr.c +++ b/sys/dev/pci/if_vr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_vr.c,v 1.24 2002/03/14 01:26:59 millert Exp $ */ +/* $OpenBSD: if_vr.c,v 1.25 2002/04/03 08:44:08 deraadt Exp $ */ /* * Copyright (c) 1997, 1998 @@ -1290,7 +1290,7 @@ vr_start(ifp) start_tx = sc->vr_cdata.vr_tx_free; while(sc->vr_cdata.vr_tx_free->vr_mbuf == NULL) { - IFQ_POLL(&ifp->if_snd, m_head); + IFQ_DEQUEUE(&ifp->if_snd, m_head); if (m_head == NULL) break; @@ -1300,6 +1300,7 @@ vr_start(ifp) /* Pack the data into the descriptor. */ if (vr_encap(sc, cur_tx, m_head)) { + IF_PREPEND(&ifp->if_snd, m_head); ifp->if_flags |= IFF_OACTIVE; cur_tx = NULL; break; @@ -1308,9 +1309,6 @@ vr_start(ifp) if (cur_tx != start_tx) VR_TXOWN(cur_tx) = VR_TXSTAT_OWN; - /* now we are committed to transmit the packet */ - IFQ_DEQUEUE(&ifp->if_snd, m_head); - #if NBPFILTER > 0 /* * If there's a BPF listener, bounce a copy of this frame |