Toke, Yes, your fix makes the problem go away for me, and does seem like the better approach. Robert > diff --git i/drivers/net/wireless/ath/ath9k/htc_drv_beacon.c w/drivers/net/wireless/ath/ath9k/htc_drv_beacon.c > index 547634f82183..81fa7cbad892 100644 > --- i/drivers/net/wireless/ath/ath9k/htc_drv_beacon.c > +++ w/drivers/net/wireless/ath/ath9k/htc_drv_beacon.c > @@ -290,6 +290,9 @@ void ath9k_htc_swba(struct ath9k_htc_priv *priv, > struct ath_common *common = ath9k_hw_common(priv->ah); > int slot; > > + if (!priv->cur_beacon_conf.enable_beacon) > + return; > + > if (swba->beacon_pending != 0) { > priv->beacon.bmisscnt++; > if (priv->beacon.bmisscnt > BSTUCK_THRESHOLD) {