Author: adrian
Date: Sat Sep  8 02:56:09 2012
New Revision: 240226
URL: http://svn.freebsd.org/changeset/base/240226

Log:
  Correctly mask out the RTS/CTS flags when forming aggregates.
  
  This had the side effect of clearing HAL_TXDESC_CLRDMASK for a bunch of
  frames, meaning they'd end up being potentially filtered if there were
  an error.  This is fine in the previous world as they'd just be
  software retried but now that I'm working on filtered frames, these
  descriptors would be endlessly retried until another valid frame would
  come along that had CLRDMASK set.

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

Modified: head/sys/dev/ath/if_ath_tx_ht.c
==============================================================================
--- head/sys/dev/ath/if_ath_tx_ht.c     Sat Sep  8 02:41:50 2012        
(r240225)
+++ head/sys/dev/ath/if_ath_tx_ht.c     Sat Sep  8 02:56:09 2012        
(r240226)
@@ -742,7 +742,7 @@ ath_tx_form_aggr(struct ath_softc *sc, s
                 * subsequent frame with this config.
                 */
                bf->bf_state.bfs_txflags &=
-                   (HAL_TXDESC_RTSENA | HAL_TXDESC_CTSENA);
+                   ~ (HAL_TXDESC_RTSENA | HAL_TXDESC_CTSENA);
                bf->bf_state.bfs_txflags |=
                    bf_first->bf_state.bfs_txflags &
                    (HAL_TXDESC_RTSENA | HAL_TXDESC_CTSENA);
_______________________________________________
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