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