diff options
Diffstat (limited to 'net/mac80211/iface.c')
-rw-r--r-- | net/mac80211/iface.c | 30 |
1 files changed, 1 insertions, 29 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index 7aa85591dbe7..f0f11bb794af 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c | |||
@@ -197,11 +197,6 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up) | |||
197 | sdata->bss = &sdata->u.ap; | 197 | sdata->bss = &sdata->u.ap; |
198 | break; | 198 | break; |
199 | case NL80211_IFTYPE_MESH_POINT: | 199 | case NL80211_IFTYPE_MESH_POINT: |
200 | if (!ieee80211_vif_is_mesh(&sdata->vif)) | ||
201 | break; | ||
202 | /* mesh ifaces must set allmulti to forward mcast traffic */ | ||
203 | atomic_inc(&local->iff_allmultis); | ||
204 | break; | ||
205 | case NL80211_IFTYPE_STATION: | 200 | case NL80211_IFTYPE_STATION: |
206 | case NL80211_IFTYPE_MONITOR: | 201 | case NL80211_IFTYPE_MONITOR: |
207 | case NL80211_IFTYPE_ADHOC: | 202 | case NL80211_IFTYPE_ADHOC: |
@@ -273,12 +268,7 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up) | |||
273 | goto err_stop; | 268 | goto err_stop; |
274 | } | 269 | } |
275 | 270 | ||
276 | if (ieee80211_vif_is_mesh(&sdata->vif)) { | 271 | if (sdata->vif.type == NL80211_IFTYPE_AP) { |
277 | local->fif_other_bss++; | ||
278 | ieee80211_configure_filter(local); | ||
279 | |||
280 | ieee80211_start_mesh(sdata); | ||
281 | } else if (sdata->vif.type == NL80211_IFTYPE_AP) { | ||
282 | local->fif_pspoll++; | 272 | local->fif_pspoll++; |
283 | local->fif_probe_req++; | 273 | local->fif_probe_req++; |
284 | 274 | ||
@@ -503,18 +493,6 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata, | |||
503 | ieee80211_adjust_monitor_flags(sdata, -1); | 493 | ieee80211_adjust_monitor_flags(sdata, -1); |
504 | ieee80211_configure_filter(local); | 494 | ieee80211_configure_filter(local); |
505 | break; | 495 | break; |
506 | case NL80211_IFTYPE_MESH_POINT: | ||
507 | if (ieee80211_vif_is_mesh(&sdata->vif)) { | ||
508 | /* other_bss and allmulti are always set on mesh | ||
509 | * ifaces */ | ||
510 | local->fif_other_bss--; | ||
511 | atomic_dec(&local->iff_allmultis); | ||
512 | |||
513 | ieee80211_configure_filter(local); | ||
514 | |||
515 | ieee80211_stop_mesh(sdata); | ||
516 | } | ||
517 | /* fall through */ | ||
518 | default: | 496 | default: |
519 | flush_work(&sdata->work); | 497 | flush_work(&sdata->work); |
520 | /* | 498 | /* |
@@ -1204,12 +1182,6 @@ int ieee80211_if_add(struct ieee80211_local *local, const char *name, | |||
1204 | if (ret) | 1182 | if (ret) |
1205 | goto fail; | 1183 | goto fail; |
1206 | 1184 | ||
1207 | if (ieee80211_vif_is_mesh(&sdata->vif) && | ||
1208 | params && params->mesh_id_len) | ||
1209 | ieee80211_sdata_set_mesh_id(sdata, | ||
1210 | params->mesh_id_len, | ||
1211 | params->mesh_id); | ||
1212 | |||
1213 | mutex_lock(&local->iflist_mtx); | 1185 | mutex_lock(&local->iflist_mtx); |
1214 | list_add_tail_rcu(&sdata->list, &local->interfaces); | 1186 | list_add_tail_rcu(&sdata->list, &local->interfaces); |
1215 | mutex_unlock(&local->iflist_mtx); | 1187 | mutex_unlock(&local->iflist_mtx); |