--- a/ath/if_ath.c +++ b/ath/if_ath.c @@ -1260,7 +1260,10 @@ ath_vap_create(struct ieee80211com *ic, case IEEE80211_M_IBSS: if ((sc->sc_nvaps != 0) && (ic->ic_opmode == IEEE80211_M_STA)) return NULL; - ic_opmode = opmode; + if (ic->ic_opmode == IEEE80211_M_HOSTAP) + ic_opmode = ic->ic_opmode; + else + ic_opmode = opmode; break; case IEEE80211_M_AHDEMO: case IEEE80211_M_MONITOR: @@ -1455,7 +1458,7 @@ ath_vap_create(struct ieee80211com *ic, * frames. Other modes carry over directly to the HAL. */ if (ic->ic_opmode == IEEE80211_M_AHDEMO) - sc->sc_opmode = HAL_M_IBSS; + sc->sc_opmode = HAL_M_HOSTAP; else sc->sc_opmode = (HAL_OPMODE) ic->ic_opmode; /* NB: compatible */