summaryrefslogtreecommitdiffstats
path: root/sys/i4b/driver/i4b_isppp.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i4b/driver/i4b_isppp.c')
-rw-r--r--sys/i4b/driver/i4b_isppp.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/i4b/driver/i4b_isppp.c b/sys/i4b/driver/i4b_isppp.c
index f13c229..0be5efa 100644
--- a/sys/i4b/driver/i4b_isppp.c
+++ b/sys/i4b/driver/i4b_isppp.c
@@ -426,20 +426,23 @@ i4bisppp_start(struct ifnet *ifp)
microtime(&ifp->if_lastchange);
- if(IF_QFULL(isdn_linktab[unit]->tx_queue))
+ IF_LOCK(isdn_linktab[unit]->tx_queue);
+ if(_IF_QFULL(isdn_linktab[unit]->tx_queue))
{
NDBGL4(L4_ISPDBG, "isp%d, tx queue full!", unit);
m_freem(m);
}
else
{
- IF_ENQUEUE(isdn_linktab[unit]->tx_queue, m);
#if 0
sc->sc_if.if_obytes += m->m_pkthdr.len;
#endif
sc->sc_outb += m->m_pkthdr.len;
sc->sc_if.if_opackets++;
+
+ _IF_ENQUEUE(isdn_linktab[unit]->tx_queue, m);
}
+ IF_UNLOCK(isdn_linktab[unit]->tx_queue);
}
isdn_linktab[unit]->bch_tx_start(isdn_linktab[unit]->unit,
isdn_linktab[unit]->channel);
OpenPOWER on IntegriCloud