@@ -468,7 +468,7 @@ void ath_check_ani(struct ath_softc *sc)
if (!test_bit(ATH_OP_PRIM_STA_VIF, &common->op_flags))
goto stop_ani;
}
- } else if (ah->opmode == NL80211_IFTYPE_STATION) {
+ } else if (ah->opmode == NL80211_IFTYPE_STATION && !ah->is_monitoring) {
if (!test_bit(ATH_OP_PRIM_STA_VIF, &common->op_flags))
goto stop_ani;
}
@@ -1530,6 +1530,7 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
if (conf->flags & IEEE80211_CONF_MONITOR) {
ath_dbg(common, CONFIG, "Monitor mode is enabled\n");
sc->sc_ah->is_monitoring = true;
+ ath_check_ani(sc);
} else {
ath_dbg(common, CONFIG, "Monitor mode is disabled\n");
sc->sc_ah->is_monitoring = false;