Author: adrian
Date: Sat Mar  9 08:50:17 2013
New Revision: 248091
URL: http://svnweb.freebsd.org/changeset/base/248091

Log:
  Disable the hw TID != buffer TID check.
  
  I can 100% reliably trigger this on TID 1 traffic by using iperf -S 32
  <client fields> to create traffic that maps to TID 1.
  
  The reference driver doesn't do this check.

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        Sat Mar  9 06:11:58 2013        
(r248090)
+++ head/sys/dev/ath/if_ath_tx.c        Sat Mar  9 08:50:17 2013        
(r248091)
@@ -4340,12 +4340,23 @@ ath_tx_aggr_comp_aggr(struct ath_softc *
            __func__, tap->txa_start, tx_ok, ts.ts_status, ts.ts_flags,
            isaggr, seq_st, hasba, ba[0], ba[1]);
 
+       /*
+        * The reference driver doesn't do this; it simply ignores
+        * this check in its entirety.
+        *
+        * I've seen this occur when using iperf to send traffic
+        * out tid 1 - the aggregate frames are all marked as TID 1,
+        * but the TXSTATUS has TID=0.  So, let's just ignore this
+        * check.
+        */
+#if 0
        /* Occasionally, the MAC sends a tx status for the wrong TID. */
        if (tid != ts.ts_tid) {
                device_printf(sc->sc_dev, "%s: tid %d != hw tid %d\n",
                    __func__, tid, ts.ts_tid);
                tx_ok = 0;
        }
+#endif
 
        /* AR5416 BA bug; this requires an interface reset */
        if (isaggr && tx_ok && (! hasba)) {
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to