} else
                        netif_tx_wake_all_queues(sdata->dev);
 
-               ieee80211_if_config(sdata, IEEE80211_IFCC_BEACON_ENABLED);
+               /* re-enable beaconing */
+               if (sdata->vif.type == NL80211_IFTYPE_AP ||
+                   sdata->vif.type == NL80211_IFTYPE_ADHOC ||
+                   sdata->vif.type == NL80211_IFTYPE_MESH_POINT)
+                       ieee80211_if_config(sdata,
+                                           IEEE80211_IFCC_BEACON_ENABLED);
        }
        mutex_unlock(&local->iflist_mtx);
 
                if (!netif_running(sdata->dev))
                        continue;
 
-               ieee80211_if_config(sdata, IEEE80211_IFCC_BEACON_ENABLED);
+               /* disable beaconing */
+               if (sdata->vif.type == NL80211_IFTYPE_AP ||
+                   sdata->vif.type == NL80211_IFTYPE_ADHOC ||
+                   sdata->vif.type == NL80211_IFTYPE_MESH_POINT)
+                       ieee80211_if_config(sdata,
+                                           IEEE80211_IFCC_BEACON_ENABLED);
 
                if (sdata->vif.type == NL80211_IFTYPE_STATION) {
                        if (sdata->u.sta.flags & IEEE80211_STA_ASSOCIATED) {