if (vap->iv_state == IEEE80211_S_RUN) {
ic->ic_set_channel(ic);
}
- } else if(vap->iv_opmode == IEEE80211_M_HOSTAP) {
+ } else if (vap->iv_opmode == IEEE80211_M_HOSTAP) {
/* Need to use channel switch announcement on beacon if we are
* up and running. We use ic_set_channel directly if we are
* "running" but not "up". Otherwise, iv_des_chan will take
* effect when we are transitioned to RUN state later. */
- if(IS_UP(vap->iv_dev)) {
- pre_announced_chanswitch(dev, ieee80211_chan2ieee(ic, vap->iv_des_chan), IEEE80211_DEFAULT_CHANCHANGE_TBTT_COUNT);
+ if (IS_UP(vap->iv_dev) &&
+ (0 == (vap->iv_des_chan->ic_flags & CHANNEL_DFS))) {
+ pre_announced_chanswitch(dev, ieee80211_chan2ieee(ic, vap->iv_des_chan),
+ IEEE80211_DEFAULT_CHANCHANGE_TBTT_COUNT);
}
else if (vap->iv_state == IEEE80211_S_RUN) {
ic->ic_curchan = vap->iv_des_chan;