mac80211: add nl80211/cfg80211 handling of the new mesh root mode option.
[safe/jmp/linux-2.6] / net / mac80211 / iface.c
index 14f10eb..1f02b06 100644 (file)
@@ -214,8 +214,8 @@ static int ieee80211_open(struct net_device *dev)
                /* must be before the call to ieee80211_configure_filter */
                local->monitors++;
                if (local->monitors == 1) {
-                       local->hw.conf.flags |= IEEE80211_CONF_RADIOTAP;
-                       hw_reconf_flags |= IEEE80211_CONF_CHANGE_RADIOTAP;
+                       local->hw.conf.flags |= IEEE80211_CONF_MONITOR;
+                       hw_reconf_flags |= IEEE80211_CONF_CHANGE_MONITOR;
                }
 
                if (sdata->u.mntr_flags & MONITOR_FLAG_FCSFAIL)
@@ -435,8 +435,8 @@ static int ieee80211_stop(struct net_device *dev)
 
                local->monitors--;
                if (local->monitors == 0) {
-                       local->hw.conf.flags &= ~IEEE80211_CONF_RADIOTAP;
-                       hw_reconf_flags |= IEEE80211_CONF_CHANGE_RADIOTAP;
+                       local->hw.conf.flags &= ~IEEE80211_CONF_MONITOR;
+                       hw_reconf_flags |= IEEE80211_CONF_CHANGE_MONITOR;
                }
 
                if (sdata->u.mntr_flags & MONITOR_FLAG_FCSFAIL)
@@ -752,6 +752,7 @@ int ieee80211_if_change_type(struct ieee80211_sub_if_data *sdata,
                ieee80211_mandatory_rates(sdata->local,
                        sdata->local->hw.conf.channel->band);
        sdata->drop_unencrypted = 0;
+       sdata->use_4addr = 0;
 
        return 0;
 }
@@ -819,6 +820,9 @@ int ieee80211_if_add(struct ieee80211_local *local, const char *name,
                                            params->mesh_id_len,
                                            params->mesh_id);
 
+       if (params && params->use_4addr >= 0)
+               sdata->use_4addr = !!params->use_4addr;
+
        mutex_lock(&local->iflist_mtx);
        list_add_tail_rcu(&sdata->list, &local->interfaces);
        mutex_unlock(&local->iflist_mtx);