diff options
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r-- | net/mac80211/cfg.c | 32 |
1 files changed, 9 insertions, 23 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index b1befac1736a..6ac49231efa9 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c | |||
@@ -15,9 +15,7 @@ | |||
15 | #include "ieee80211_i.h" | 15 | #include "ieee80211_i.h" |
16 | #include "cfg.h" | 16 | #include "cfg.h" |
17 | #include "ieee80211_rate.h" | 17 | #include "ieee80211_rate.h" |
18 | #ifdef CONFIG_MAC80211_MESH | ||
19 | #include "mesh.h" | 18 | #include "mesh.h" |
20 | #endif | ||
21 | 19 | ||
22 | #define DEFAULT_RATES 0 | 20 | #define DEFAULT_RATES 0 |
23 | 21 | ||
@@ -119,14 +117,10 @@ static int ieee80211_change_iface(struct wiphy *wiphy, int ifindex, | |||
119 | ieee80211_if_reinit(dev); | 117 | ieee80211_if_reinit(dev); |
120 | ieee80211_if_set_type(dev, itype); | 118 | ieee80211_if_set_type(dev, itype); |
121 | 119 | ||
122 | #ifdef CONFIG_MAC80211_MESH | 120 | if (ieee80211_vif_is_mesh(&sdata->vif) && params->mesh_id_len) |
123 | if (sdata->vif.type == IEEE80211_IF_TYPE_MESH_POINT && | 121 | ieee80211_if_sta_set_mesh_id(&sdata->u.sta, |
124 | params->mesh_id_len) { | 122 | params->mesh_id_len, |
125 | sdata->u.sta.mesh_id_len = params->mesh_id_len; | 123 | params->mesh_id); |
126 | memcpy(sdata->u.sta.mesh_id, params->mesh_id, | ||
127 | params->mesh_id_len); | ||
128 | } | ||
129 | #endif | ||
130 | 124 | ||
131 | if (sdata->vif.type != IEEE80211_IF_TYPE_MNTR || !flags) | 125 | if (sdata->vif.type != IEEE80211_IF_TYPE_MNTR || !flags) |
132 | return 0; | 126 | return 0; |
@@ -317,9 +311,7 @@ static int ieee80211_config_default_key(struct wiphy *wiphy, | |||
317 | 311 | ||
318 | static void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo) | 312 | static void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo) |
319 | { | 313 | { |
320 | #ifdef CONFIG_MAC80211_MESH | ||
321 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(sta->dev); | 314 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(sta->dev); |
322 | #endif | ||
323 | 315 | ||
324 | sinfo->filled = STATION_INFO_INACTIVE_TIME | | 316 | sinfo->filled = STATION_INFO_INACTIVE_TIME | |
325 | STATION_INFO_RX_BYTES | | 317 | STATION_INFO_RX_BYTES | |
@@ -329,8 +321,8 @@ static void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo) | |||
329 | sinfo->rx_bytes = sta->rx_bytes; | 321 | sinfo->rx_bytes = sta->rx_bytes; |
330 | sinfo->tx_bytes = sta->tx_bytes; | 322 | sinfo->tx_bytes = sta->tx_bytes; |
331 | 323 | ||
324 | if (ieee80211_vif_is_mesh(&sdata->vif)) { | ||
332 | #ifdef CONFIG_MAC80211_MESH | 325 | #ifdef CONFIG_MAC80211_MESH |
333 | if (sdata->vif.type == IEEE80211_IF_TYPE_MESH_POINT) { | ||
334 | sinfo->filled |= STATION_INFO_LLID | | 326 | sinfo->filled |= STATION_INFO_LLID | |
335 | STATION_INFO_PLID | | 327 | STATION_INFO_PLID | |
336 | STATION_INFO_PLINK_STATE; | 328 | STATION_INFO_PLINK_STATE; |
@@ -338,8 +330,8 @@ static void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo) | |||
338 | sinfo->llid = le16_to_cpu(sta->llid); | 330 | sinfo->llid = le16_to_cpu(sta->llid); |
339 | sinfo->plid = le16_to_cpu(sta->plid); | 331 | sinfo->plid = le16_to_cpu(sta->plid); |
340 | sinfo->plink_state = sta->plink_state; | 332 | sinfo->plink_state = sta->plink_state; |
341 | } | ||
342 | #endif | 333 | #endif |
334 | } | ||
343 | } | 335 | } |
344 | 336 | ||
345 | 337 | ||
@@ -580,9 +572,7 @@ static void sta_apply_parameters(struct ieee80211_local *local, | |||
580 | u32 rates; | 572 | u32 rates; |
581 | int i, j; | 573 | int i, j; |
582 | struct ieee80211_supported_band *sband; | 574 | struct ieee80211_supported_band *sband; |
583 | #ifdef CONFIG_MAC80211_MESH | ||
584 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(sta->dev); | 575 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(sta->dev); |
585 | #endif | ||
586 | 576 | ||
587 | if (params->station_flags & STATION_FLAG_CHANGED) { | 577 | if (params->station_flags & STATION_FLAG_CHANGED) { |
588 | sta->flags &= ~WLAN_STA_AUTHORIZED; | 578 | sta->flags &= ~WLAN_STA_AUTHORIZED; |
@@ -621,9 +611,7 @@ static void sta_apply_parameters(struct ieee80211_local *local, | |||
621 | sta->supp_rates[local->oper_channel->band] = rates; | 611 | sta->supp_rates[local->oper_channel->band] = rates; |
622 | } | 612 | } |
623 | 613 | ||
624 | #ifdef CONFIG_MAC80211_MESH | 614 | if (ieee80211_vif_is_mesh(&sdata->vif) && params->plink_action) { |
625 | if (sdata->vif.type == IEEE80211_IF_TYPE_MESH_POINT && | ||
626 | params->plink_action) | ||
627 | switch (params->plink_action) { | 615 | switch (params->plink_action) { |
628 | case PLINK_ACTION_OPEN: | 616 | case PLINK_ACTION_OPEN: |
629 | mesh_plink_open(sta); | 617 | mesh_plink_open(sta); |
@@ -632,7 +620,7 @@ static void sta_apply_parameters(struct ieee80211_local *local, | |||
632 | mesh_plink_block(sta); | 620 | mesh_plink_block(sta); |
633 | break; | 621 | break; |
634 | } | 622 | } |
635 | #endif | 623 | } |
636 | } | 624 | } |
637 | 625 | ||
638 | static int ieee80211_add_station(struct wiphy *wiphy, struct net_device *dev, | 626 | static int ieee80211_add_station(struct wiphy *wiphy, struct net_device *dev, |
@@ -655,11 +643,9 @@ static int ieee80211_add_station(struct wiphy *wiphy, struct net_device *dev, | |||
655 | } else | 643 | } else |
656 | sdata = IEEE80211_DEV_TO_SUB_IF(dev); | 644 | sdata = IEEE80211_DEV_TO_SUB_IF(dev); |
657 | 645 | ||
658 | #ifdef CONFIG_MAC80211_MESH | 646 | if (ieee80211_vif_is_mesh(&sdata->vif)) |
659 | if (sdata->vif.type == IEEE80211_IF_TYPE_MESH_POINT) | ||
660 | sta = mesh_plink_add(mac, DEFAULT_RATES, dev); | 647 | sta = mesh_plink_add(mac, DEFAULT_RATES, dev); |
661 | else | 648 | else |
662 | #endif | ||
663 | sta = sta_info_add(local, dev, mac, GFP_KERNEL); | 649 | sta = sta_info_add(local, dev, mac, GFP_KERNEL); |
664 | 650 | ||
665 | if (IS_ERR(sta)) | 651 | if (IS_ERR(sta)) |