an = (struct ath_node *)sta->drv_priv;
- /* set up per-node tx/rx state */
- ath_tx_node_init(sc, an);
- ath_rx_node_init(sc, an);
+ if (sc->sc_flags & SC_OP_TXAGGR)
+ ath_tx_node_init(sc, an);
+ if (sc->sc_flags & SC_OP_RXAGGR)
+ ath_rx_node_init(sc, an);
an->maxampdu = 1 << (IEEE80211_HTCAP_MAXRXAMPDU_FACTOR +
sta->ht_cap.ampdu_factor);
ath_chainmask_sel_timerstop(&an->an_chainmask_sel);
- ath_tx_node_cleanup(sc, an);
-
- ath_tx_node_free(sc, an);
- ath_rx_node_free(sc, an);
+ if (sc->sc_flags & SC_OP_TXAGGR)
+ ath_tx_node_cleanup(sc, an);
+ if (sc->sc_flags & SC_OP_RXAGGR)
+ ath_rx_node_cleanup(sc, an);
}
/*