Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Mar 2006 21:00:12 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 93467 for review
Message-ID:  <200603172100.k2HL0CmU013875@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=93467

Change 93467 by imp@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 */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200603172100.k2HL0CmU013875>