summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2012-09-08 02:56:09 +0000
committeradrian <adrian@FreeBSD.org>2012-09-08 02:56:09 +0000
commitfb40c86f7f3666ca5e299037097af8acad817a85 (patch)
treef2c34ed68e91e9a611957fdac5a2367110d344d8
parent7074fc29211bc931f396cf9991133680f9f4c9ea (diff)
downloadFreeBSD-src-fb40c86f7f3666ca5e299037097af8acad817a85.zip
FreeBSD-src-fb40c86f7f3666ca5e299037097af8acad817a85.tar.gz
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.
-rw-r--r--sys/dev/ath/if_ath_tx_ht.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/ath/if_ath_tx_ht.c b/sys/dev/ath/if_ath_tx_ht.c
index 6495a04..f12ec6e 100644
--- a/sys/dev/ath/if_ath_tx_ht.c
+++ b/sys/dev/ath/if_ath_tx_ht.c
@@ -742,7 +742,7 @@ ath_tx_form_aggr(struct ath_softc *sc, struct ath_node *an,
* 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);
OpenPOWER on IntegriCloud