svn commit: r361320 - head/sys/dev/ath

Adrian Chadd adrian at FreeBSD.org
Thu May 21 04:26:21 UTC 2020


Author: adrian
Date: Thu May 21 04:26:20 2020
New Revision: 361320
URL: https://svnweb.freebsd.org/changeset/base/361320

Log:
  [ath] reset hardware if this particular mac bug is seen.
  
  I have to dig into why I'm seeing it on chips as late as the AR9380 era
  stuff (as it's marked as an AR5416 bug, but who knows!) but i'm seeing
  aggregate TX frames complete with no blockack bit set.  So, everything
  should be treated as a failure and do a hardware reset for good measure.
  
  Tested:
  
  * AR9380, STA mode
  * AR9580 (5GHz), AP mode

Modified:
  head/sys/dev/ath/if_ath_tx.c

Modified: head/sys/dev/ath/if_ath_tx.c
==============================================================================
--- head/sys/dev/ath/if_ath_tx.c	Thu May 21 03:53:45 2020	(r361319)
+++ head/sys/dev/ath/if_ath_tx.c	Thu May 21 04:26:20 2020	(r361320)
@@ -5011,7 +5011,11 @@ ath_tx_aggr_comp_aggr(struct ath_softc *sc, struct ath
 		    "%s: AR5416 bug: hasba=%d; txok=%d, isaggr=%d, "
 		    "seq_st=%d\n",
 		    __func__, hasba, tx_ok, isaggr, seq_st);
-		/* XXX TODO: schedule an interface reset */
+		taskqueue_enqueue(sc->sc_tq, &sc->sc_fataltask);
+		/* And as we can't really trust the BA here .. */
+		ba[0] = 0;
+		ba[1] = 0;
+		seq_st = 0;
 #ifdef ATH_DEBUG
 		ath_printtxbuf(sc, bf_first,
 		    sc->sc_ac2q[atid->ac]->axq_qnum, 0, 0);


More information about the svn-src-head mailing list