PERFORCE change 93467 for review
Warner Losh
imp at FreeBSD.org
Fri Mar 17 21:00:14 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=93467
Change 93467 by imp at imp_Speedy on 2006/03/17 20:59:57
We need to lock around the Tx path of the ISR. In addition, when
we can send more packets, we need to clear OACTIVE and call the
start routine...
# this gets me reliably every time to the nfs panic on pagein
# when init is run. No idea what that bug is.
Affected files ...
.. //depot/projects/arm/src/sys/arm/at91/if_ate.c#41 edit
Differences ...
==== //depot/projects/arm/src/sys/arm/at91/if_ate.c#41 (text+ko) ====
@@ -681,6 +681,7 @@
}
}
if (status & ETH_ISR_TCOM) {
+ ATE_LOCK(sc);
if (sc->sent_mbuf[0])
m_freem(sc->sent_mbuf[0]);
if (sc->sent_mbuf[1]) {
@@ -697,6 +698,13 @@
sc->sent_mbuf[0] = NULL;
sc->txcur = 0;
}
+ /*
+ * We're no longer busy, so clear the busy flag and call the
+ * start routine to xmit more packets.
+ */
+ sc->ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ atestart_locked(sc->ifp);
+ ATE_UNLOCK(sc);
}
if (status & ETH_ISR_RBNA) {
/* Workaround Errata #11 */
More information about the p4-projects
mailing list