Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Oct 2011 23:36:29 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r226484 - user/adrian/if_ath_tx/sys/dev/ath
Message-ID:  <201110172336.p9HNaTnC045398@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Mon Oct 17 23:36:29 2011
New Revision: 226484
URL: http://svn.freebsd.org/changeset/base/226484

Log:
  Now that I've fixed the issues that I was seeing when the PCU was being
  kicked, remove all the extra code/comments left over.

Modified:
  user/adrian/if_ath_tx/sys/dev/ath/if_ath.c

Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c	Mon Oct 17 22:23:27 2011	(r226483)
+++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c	Mon Oct 17 23:36:29 2011	(r226484)
@@ -4139,38 +4139,11 @@ rx_next:
 	 * need to be handled, kick the PCU if there's
 	 * been an RXEOL condition.
 	 */
-	/*
-	 * XXX TODO!
-	 * It is very likely that we're unfortunately
-	 * racing with other places where ath_hal_intrset()
-	 * may be called. It may be that we do need to
-	 * add some more locking (eg the pcu lock from ath9k/
-	 * reference), or introduce some other way to cope
-	 * with this.
-	 */
 	if (resched && sc->sc_kickpcu) {
 		CTR0(ATH_KTR_ERR, "ath_rx_proc: kickpcu");
 		device_printf(sc->sc_dev, "%s: kickpcu; handled %d packets\n",
 		    __func__, npkts);
 
-#if 0
-		/*
-		 * This re-links all of the descriptors together.
-		 * (Is it possible that somehow, some state/issue
-		 * is leaving us with badly linked descriptors?)
-		 * Is it possible that we're receiving another RXEOL
-		 * _during_ this function?
-		 */
-		if (ath_startrecv(sc) != 0) {
-			if_printf(ifp,
-			    "%s: couldn't restart RX after RXEOL; resetting\n",
-			    __func__);
-			ath_reset(ifp);
-			sc->sc_kickpcu = 0;
-			return;
-		}
-#endif
-
 		/* XXX rxslink? */
 		bf = TAILQ_FIRST(&sc->sc_rxbuf);
 		ath_hal_putrxbuf(ah, bf->bf_daddr);
@@ -4178,10 +4151,9 @@ rx_next:
 		ath_mode_init(sc);		/* set filters, etc. */
 		ath_hal_startpcurecv(ah);	/* re-enable PCU/DMA engine */
 
-		ATH_LOCK(sc);
+		ATH_LOCK_ASSERT(sc);
 		ath_hal_intrset(ah, sc->sc_imask);
 		sc->sc_kickpcu = 0;
-		ATH_UNLOCK(sc);
 	}
 
 	if (resched && (ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0) {



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