diff options
author | wpaul <wpaul@FreeBSD.org> | 2000-01-14 01:36:16 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2000-01-14 01:36:16 +0000 |
commit | 3e7d8837770cd977fa12f623b643c4a90c566501 (patch) | |
tree | 1dc6e867f683d5a1839ea0130a0b401a4c4b64d3 /sys/dev/usb/if_aue.c | |
parent | dd8ecc747f9ba945e64ed62031da95e7638919e2 (diff) | |
download | FreeBSD-src-3e7d8837770cd977fa12f623b643c4a90c566501.zip FreeBSD-src-3e7d8837770cd977fa12f623b643c4a90c566501.tar.gz |
Pull my head out of my ass and actually make the tx netisr stuff work right.
Do not not not call m_freem() in the txeof routines. Let the netisr routine
do it. This also makes the tx netisr queuing much simpler (I can just use
another ifqueue instead of the mess I had before.)
Thanks to Bosko Milekic for making me actually think about what I was
doing for a minute.
Diffstat (limited to 'sys/dev/usb/if_aue.c')
-rw-r--r-- | sys/dev/usb/if_aue.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/dev/usb/if_aue.c b/sys/dev/usb/if_aue.c index 0e7ea70..277d913 100644 --- a/sys/dev/usb/if_aue.c +++ b/sys/dev/usb/if_aue.c @@ -1036,7 +1036,8 @@ static void aue_txeof(xfer, priv, status) ifp->if_flags &= ~IFF_OACTIVE; usbd_get_xfer_status(c->aue_xfer, NULL, NULL, NULL, &err); - m_freem(c->aue_mbuf); + c->aue_mbuf->m_pkthdr.rcvif = ifp; + usb_tx_done(c->aue_mbuf); c->aue_mbuf = NULL; if (err) @@ -1044,8 +1045,6 @@ static void aue_txeof(xfer, priv, status) else ifp->if_opackets++; - usb_tx_done(ifp); - splx(s); return; |