diff options
| author | Johannes Berg <johannes@sipsolutions.net> | 2008-10-10 19:51:51 -0400 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2008-10-31 19:00:15 -0400 |
| commit | bda3933a8aceedd03e0dd410844bd310033ca756 (patch) | |
| tree | f4d2c70a6338e500b6db93b073801181280b1840 /net | |
| parent | 9124b07740c51cbc6e358dd0c4abc6ee8ded084d (diff) | |
mac80211: move bss_conf into vif
Move bss_conf into the vif struct so that drivers can
access it during ->tx without having to store it in
the private data or similar. No driver updates because
this is only for when they want to start using it.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
| -rw-r--r-- | net/mac80211/cfg.c | 6 | ||||
| -rw-r--r-- | net/mac80211/debugfs_netdev.c | 2 | ||||
| -rw-r--r-- | net/mac80211/ieee80211_i.h | 3 | ||||
| -rw-r--r-- | net/mac80211/iface.c | 2 | ||||
| -rw-r--r-- | net/mac80211/main.c | 8 | ||||
| -rw-r--r-- | net/mac80211/mlme.c | 30 | ||||
| -rw-r--r-- | net/mac80211/tx.c | 16 | ||||
| -rw-r--r-- | net/mac80211/util.c | 6 |
8 files changed, 35 insertions, 38 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 8ea30902d5db..28382b5c7c25 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c | |||
| @@ -964,16 +964,16 @@ static int ieee80211_change_bss(struct wiphy *wiphy, | |||
| 964 | return -EINVAL; | 964 | return -EINVAL; |
| 965 | 965 | ||
| 966 | if (params->use_cts_prot >= 0) { | 966 | if (params->use_cts_prot >= 0) { |
| 967 | sdata->bss_conf.use_cts_prot = params->use_cts_prot; | 967 | sdata->vif.bss_conf.use_cts_prot = params->use_cts_prot; |
| 968 | changed |= BSS_CHANGED_ERP_CTS_PROT; | 968 | changed |= BSS_CHANGED_ERP_CTS_PROT; |
| 969 | } | 969 | } |
| 970 | if (params->use_short_preamble >= 0) { | 970 | if (params->use_short_preamble >= 0) { |
| 971 | sdata->bss_conf.use_short_preamble = | 971 | sdata->vif.bss_conf.use_short_preamble = |
| 972 | params->use_short_preamble; | 972 | params->use_short_preamble; |
| 973 | changed |= BSS_CHANGED_ERP_PREAMBLE; | 973 | changed |= BSS_CHANGED_ERP_PREAMBLE; |
| 974 | } | 974 | } |
| 975 | if (params->use_short_slot_time >= 0) { | 975 | if (params->use_short_slot_time >= 0) { |
| 976 | sdata->bss_conf.use_short_slot = | 976 | sdata->vif.bss_conf.use_short_slot = |
| 977 | params->use_short_slot_time; | 977 | params->use_short_slot_time; |
| 978 | changed |= BSS_CHANGED_ERP_SLOT; | 978 | changed |= BSS_CHANGED_ERP_SLOT; |
| 979 | } | 979 | } |
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c index 56f3f29385cb..c54219301724 100644 --- a/net/mac80211/debugfs_netdev.c +++ b/net/mac80211/debugfs_netdev.c | |||
| @@ -119,7 +119,7 @@ static ssize_t ieee80211_if_fmt_flags( | |||
| 119 | sdata->u.sta.flags & IEEE80211_STA_AUTHENTICATED ? "AUTH\n" : "", | 119 | sdata->u.sta.flags & IEEE80211_STA_AUTHENTICATED ? "AUTH\n" : "", |
| 120 | sdata->u.sta.flags & IEEE80211_STA_ASSOCIATED ? "ASSOC\n" : "", | 120 | sdata->u.sta.flags & IEEE80211_STA_ASSOCIATED ? "ASSOC\n" : "", |
| 121 | sdata->u.sta.flags & IEEE80211_STA_PROBEREQ_POLL ? "PROBEREQ POLL\n" : "", | 121 | sdata->u.sta.flags & IEEE80211_STA_PROBEREQ_POLL ? "PROBEREQ POLL\n" : "", |
| 122 | sdata->bss_conf.use_cts_prot ? "CTS prot\n" : ""); | 122 | sdata->vif.bss_conf.use_cts_prot ? "CTS prot\n" : ""); |
| 123 | } | 123 | } |
| 124 | __IEEE80211_IF_FILE(flags); | 124 | __IEEE80211_IF_FILE(flags); |
| 125 | 125 | ||
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index f1ef522bfe07..859b5b001f22 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
| @@ -440,9 +440,6 @@ struct ieee80211_sub_if_data { | |||
| 440 | 440 | ||
| 441 | u16 sequence_number; | 441 | u16 sequence_number; |
| 442 | 442 | ||
| 443 | /* BSS configuration for this interface. */ | ||
| 444 | struct ieee80211_bss_conf bss_conf; | ||
| 445 | |||
| 446 | /* | 443 | /* |
| 447 | * AP this belongs to: self in AP mode and | 444 | * AP this belongs to: self in AP mode and |
| 448 | * corresponding AP in VLAN mode, NULL for | 445 | * corresponding AP in VLAN mode, NULL for |
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index df28c5f7c9c0..cde145221b61 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c | |||
| @@ -695,7 +695,7 @@ int ieee80211_if_change_type(struct ieee80211_sub_if_data *sdata, | |||
| 695 | ieee80211_setup_sdata(sdata, type); | 695 | ieee80211_setup_sdata(sdata, type); |
| 696 | 696 | ||
| 697 | /* reset some values that shouldn't be kept across type changes */ | 697 | /* reset some values that shouldn't be kept across type changes */ |
| 698 | sdata->bss_conf.basic_rates = | 698 | sdata->vif.bss_conf.basic_rates = |
| 699 | ieee80211_mandatory_rates(sdata->local, | 699 | ieee80211_mandatory_rates(sdata->local, |
| 700 | sdata->local->hw.conf.channel->band); | 700 | sdata->local->hw.conf.channel->band); |
| 701 | sdata->drop_unencrypted = 0; | 701 | sdata->drop_unencrypted = 0; |
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 59be9e782699..ab8a860444af 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
| @@ -249,15 +249,15 @@ void ieee80211_bss_info_change_notify(struct ieee80211_sub_if_data *sdata, | |||
| 249 | if (local->ops->bss_info_changed) | 249 | if (local->ops->bss_info_changed) |
| 250 | local->ops->bss_info_changed(local_to_hw(local), | 250 | local->ops->bss_info_changed(local_to_hw(local), |
| 251 | &sdata->vif, | 251 | &sdata->vif, |
| 252 | &sdata->bss_conf, | 252 | &sdata->vif.bss_conf, |
| 253 | changed); | 253 | changed); |
| 254 | } | 254 | } |
| 255 | 255 | ||
| 256 | u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata) | 256 | u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata) |
| 257 | { | 257 | { |
| 258 | sdata->bss_conf.use_cts_prot = false; | 258 | sdata->vif.bss_conf.use_cts_prot = false; |
| 259 | sdata->bss_conf.use_short_preamble = false; | 259 | sdata->vif.bss_conf.use_short_preamble = false; |
| 260 | sdata->bss_conf.use_short_slot = false; | 260 | sdata->vif.bss_conf.use_short_slot = false; |
| 261 | return BSS_CHANGED_ERP_CTS_PROT | | 261 | return BSS_CHANGED_ERP_CTS_PROT | |
| 262 | BSS_CHANGED_ERP_PREAMBLE | | 262 | BSS_CHANGED_ERP_PREAMBLE | |
| 263 | BSS_CHANGED_ERP_SLOT; | 263 | BSS_CHANGED_ERP_SLOT; |
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 196dd39f6286..9c5f5c37a49e 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
| @@ -572,7 +572,7 @@ static void ieee80211_sta_wmm_params(struct ieee80211_local *local, | |||
| 572 | static u32 ieee80211_handle_bss_capability(struct ieee80211_sub_if_data *sdata, | 572 | static u32 ieee80211_handle_bss_capability(struct ieee80211_sub_if_data *sdata, |
| 573 | u16 capab, bool erp_valid, u8 erp) | 573 | u16 capab, bool erp_valid, u8 erp) |
| 574 | { | 574 | { |
| 575 | struct ieee80211_bss_conf *bss_conf = &sdata->bss_conf; | 575 | struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; |
| 576 | #ifdef CONFIG_MAC80211_VERBOSE_DEBUG | 576 | #ifdef CONFIG_MAC80211_VERBOSE_DEBUG |
| 577 | struct ieee80211_if_sta *ifsta = &sdata->u.sta; | 577 | struct ieee80211_if_sta *ifsta = &sdata->u.sta; |
| 578 | #endif | 578 | #endif |
| @@ -718,9 +718,9 @@ static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata, | |||
| 718 | ifsta->ssid, ifsta->ssid_len); | 718 | ifsta->ssid, ifsta->ssid_len); |
| 719 | if (bss) { | 719 | if (bss) { |
| 720 | /* set timing information */ | 720 | /* set timing information */ |
| 721 | sdata->bss_conf.beacon_int = bss->beacon_int; | 721 | sdata->vif.bss_conf.beacon_int = bss->beacon_int; |
| 722 | sdata->bss_conf.timestamp = bss->timestamp; | 722 | sdata->vif.bss_conf.timestamp = bss->timestamp; |
| 723 | sdata->bss_conf.dtim_period = bss->dtim_period; | 723 | sdata->vif.bss_conf.dtim_period = bss->dtim_period; |
| 724 | 724 | ||
| 725 | changed |= ieee80211_handle_bss_capability(sdata, | 725 | changed |= ieee80211_handle_bss_capability(sdata, |
| 726 | bss->capability, bss->has_erp_value, bss->erp_value); | 726 | bss->capability, bss->has_erp_value, bss->erp_value); |
| @@ -730,9 +730,9 @@ static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata, | |||
| 730 | 730 | ||
| 731 | if (conf->flags & IEEE80211_CONF_SUPPORT_HT_MODE) { | 731 | if (conf->flags & IEEE80211_CONF_SUPPORT_HT_MODE) { |
| 732 | changed |= BSS_CHANGED_HT; | 732 | changed |= BSS_CHANGED_HT; |
| 733 | sdata->bss_conf.assoc_ht = 1; | 733 | sdata->vif.bss_conf.assoc_ht = 1; |
| 734 | sdata->bss_conf.ht_cap = &conf->ht_cap; | 734 | sdata->vif.bss_conf.ht_cap = &conf->ht_cap; |
| 735 | sdata->bss_conf.ht_bss_conf = &conf->ht_bss_conf; | 735 | sdata->vif.bss_conf.ht_bss_conf = &conf->ht_bss_conf; |
| 736 | } | 736 | } |
| 737 | 737 | ||
| 738 | ifsta->flags |= IEEE80211_STA_PREV_BSSID_SET; | 738 | ifsta->flags |= IEEE80211_STA_PREV_BSSID_SET; |
| @@ -742,7 +742,7 @@ static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata, | |||
| 742 | ifsta->last_probe = jiffies; | 742 | ifsta->last_probe = jiffies; |
| 743 | ieee80211_led_assoc(local, 1); | 743 | ieee80211_led_assoc(local, 1); |
| 744 | 744 | ||
| 745 | sdata->bss_conf.assoc = 1; | 745 | sdata->vif.bss_conf.assoc = 1; |
| 746 | /* | 746 | /* |
| 747 | * For now just always ask the driver to update the basic rateset | 747 | * For now just always ask the driver to update the basic rateset |
| 748 | * when we have associated, we aren't checking whether it actually | 748 | * when we have associated, we aren't checking whether it actually |
| @@ -847,15 +847,15 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata, | |||
| 847 | ifsta->flags &= ~IEEE80211_STA_ASSOCIATED; | 847 | ifsta->flags &= ~IEEE80211_STA_ASSOCIATED; |
| 848 | changed |= ieee80211_reset_erp_info(sdata); | 848 | changed |= ieee80211_reset_erp_info(sdata); |
| 849 | 849 | ||
| 850 | if (sdata->bss_conf.assoc_ht) | 850 | if (sdata->vif.bss_conf.assoc_ht) |
| 851 | changed |= BSS_CHANGED_HT; | 851 | changed |= BSS_CHANGED_HT; |
| 852 | 852 | ||
| 853 | sdata->bss_conf.assoc_ht = 0; | 853 | sdata->vif.bss_conf.assoc_ht = 0; |
| 854 | sdata->bss_conf.ht_cap = NULL; | 854 | sdata->vif.bss_conf.ht_cap = NULL; |
| 855 | sdata->bss_conf.ht_bss_conf = NULL; | 855 | sdata->vif.bss_conf.ht_bss_conf = NULL; |
| 856 | 856 | ||
| 857 | ieee80211_led_assoc(local, 0); | 857 | ieee80211_led_assoc(local, 0); |
| 858 | sdata->bss_conf.assoc = 0; | 858 | sdata->vif.bss_conf.assoc = 0; |
| 859 | 859 | ||
| 860 | ieee80211_sta_send_apinfo(sdata, ifsta); | 860 | ieee80211_sta_send_apinfo(sdata, ifsta); |
| 861 | 861 | ||
| @@ -1182,7 +1182,7 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata, | |||
| 1182 | u64 rates, basic_rates; | 1182 | u64 rates, basic_rates; |
| 1183 | u16 capab_info, status_code, aid; | 1183 | u16 capab_info, status_code, aid; |
| 1184 | struct ieee802_11_elems elems; | 1184 | struct ieee802_11_elems elems; |
| 1185 | struct ieee80211_bss_conf *bss_conf = &sdata->bss_conf; | 1185 | struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; |
| 1186 | u8 *pos; | 1186 | u8 *pos; |
| 1187 | int i, j; | 1187 | int i, j; |
| 1188 | bool have_higher_than_11mbit = false; | 1188 | bool have_higher_than_11mbit = false; |
| @@ -1324,7 +1324,7 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata, | |||
| 1324 | } | 1324 | } |
| 1325 | 1325 | ||
| 1326 | sta->sta.supp_rates[local->hw.conf.channel->band] = rates; | 1326 | sta->sta.supp_rates[local->hw.conf.channel->band] = rates; |
| 1327 | sdata->bss_conf.basic_rates = basic_rates; | 1327 | sdata->vif.bss_conf.basic_rates = basic_rates; |
| 1328 | 1328 | ||
| 1329 | /* cf. IEEE 802.11 9.2.12 */ | 1329 | /* cf. IEEE 802.11 9.2.12 */ |
| 1330 | if (local->hw.conf.channel->band == IEEE80211_BAND_2GHZ && | 1330 | if (local->hw.conf.channel->band == IEEE80211_BAND_2GHZ && |
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index dd440a07634e..6f3e4be97631 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
| @@ -116,7 +116,7 @@ static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, int group_addr, | |||
| 116 | if (r->bitrate > txrate->bitrate) | 116 | if (r->bitrate > txrate->bitrate) |
| 117 | break; | 117 | break; |
| 118 | 118 | ||
| 119 | if (tx->sdata->bss_conf.basic_rates & BIT(i)) | 119 | if (tx->sdata->vif.bss_conf.basic_rates & BIT(i)) |
| 120 | rate = r->bitrate; | 120 | rate = r->bitrate; |
| 121 | 121 | ||
| 122 | switch (sband->band) { | 122 | switch (sband->band) { |
| @@ -150,7 +150,7 @@ static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, int group_addr, | |||
| 150 | * to closest integer */ | 150 | * to closest integer */ |
| 151 | 151 | ||
| 152 | dur = ieee80211_frame_duration(local, 10, rate, erp, | 152 | dur = ieee80211_frame_duration(local, 10, rate, erp, |
| 153 | tx->sdata->bss_conf.use_short_preamble); | 153 | tx->sdata->vif.bss_conf.use_short_preamble); |
| 154 | 154 | ||
| 155 | if (next_frag_len) { | 155 | if (next_frag_len) { |
| 156 | /* Frame is fragmented: duration increases with time needed to | 156 | /* Frame is fragmented: duration increases with time needed to |
| @@ -159,7 +159,7 @@ static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, int group_addr, | |||
| 159 | /* next fragment */ | 159 | /* next fragment */ |
| 160 | dur += ieee80211_frame_duration(local, next_frag_len, | 160 | dur += ieee80211_frame_duration(local, next_frag_len, |
| 161 | txrate->bitrate, erp, | 161 | txrate->bitrate, erp, |
| 162 | tx->sdata->bss_conf.use_short_preamble); | 162 | tx->sdata->vif.bss_conf.use_short_preamble); |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | return cpu_to_le16(dur); | 165 | return cpu_to_le16(dur); |
| @@ -463,7 +463,7 @@ ieee80211_tx_h_rate_ctrl(struct ieee80211_tx_data *tx) | |||
| 463 | } else | 463 | } else |
| 464 | info->control.retries[0].rate_idx = -1; | 464 | info->control.retries[0].rate_idx = -1; |
| 465 | 465 | ||
| 466 | if (tx->sdata->bss_conf.use_cts_prot && | 466 | if (tx->sdata->vif.bss_conf.use_cts_prot && |
| 467 | (tx->flags & IEEE80211_TX_FRAGMENTED) && (rsel.nonerp_idx >= 0)) { | 467 | (tx->flags & IEEE80211_TX_FRAGMENTED) && (rsel.nonerp_idx >= 0)) { |
| 468 | tx->last_frag_rate_idx = tx->rate_idx; | 468 | tx->last_frag_rate_idx = tx->rate_idx; |
| 469 | if (rsel.probe_idx >= 0) | 469 | if (rsel.probe_idx >= 0) |
| @@ -529,7 +529,7 @@ ieee80211_tx_h_misc(struct ieee80211_tx_data *tx) | |||
| 529 | if ((tx->sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) && | 529 | if ((tx->sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) && |
| 530 | (sband->bitrates[tx->rate_idx].flags & IEEE80211_RATE_ERP_G) && | 530 | (sband->bitrates[tx->rate_idx].flags & IEEE80211_RATE_ERP_G) && |
| 531 | (tx->flags & IEEE80211_TX_UNICAST) && | 531 | (tx->flags & IEEE80211_TX_UNICAST) && |
| 532 | tx->sdata->bss_conf.use_cts_prot && | 532 | tx->sdata->vif.bss_conf.use_cts_prot && |
| 533 | !(info->flags & IEEE80211_TX_CTL_USE_RTS_CTS)) | 533 | !(info->flags & IEEE80211_TX_CTL_USE_RTS_CTS)) |
| 534 | info->flags |= IEEE80211_TX_CTL_USE_CTS_PROTECT; | 534 | info->flags |= IEEE80211_TX_CTL_USE_CTS_PROTECT; |
| 535 | 535 | ||
| @@ -538,7 +538,7 @@ ieee80211_tx_h_misc(struct ieee80211_tx_data *tx) | |||
| 538 | * available on the network at the current point in time. */ | 538 | * available on the network at the current point in time. */ |
| 539 | if (ieee80211_is_data(hdr->frame_control) && | 539 | if (ieee80211_is_data(hdr->frame_control) && |
| 540 | (sband->bitrates[tx->rate_idx].flags & IEEE80211_RATE_SHORT_PREAMBLE) && | 540 | (sband->bitrates[tx->rate_idx].flags & IEEE80211_RATE_SHORT_PREAMBLE) && |
| 541 | tx->sdata->bss_conf.use_short_preamble && | 541 | tx->sdata->vif.bss_conf.use_short_preamble && |
| 542 | (!tx->sta || test_sta_flags(tx->sta, WLAN_STA_SHORT_PREAMBLE))) { | 542 | (!tx->sta || test_sta_flags(tx->sta, WLAN_STA_SHORT_PREAMBLE))) { |
| 543 | info->flags |= IEEE80211_TX_CTL_SHORT_PREAMBLE; | 543 | info->flags |= IEEE80211_TX_CTL_SHORT_PREAMBLE; |
| 544 | } | 544 | } |
| @@ -558,7 +558,7 @@ ieee80211_tx_h_misc(struct ieee80211_tx_data *tx) | |||
| 558 | for (idx = 0; idx < sband->n_bitrates; idx++) { | 558 | for (idx = 0; idx < sband->n_bitrates; idx++) { |
| 559 | if (sband->bitrates[idx].bitrate > rate->bitrate) | 559 | if (sband->bitrates[idx].bitrate > rate->bitrate) |
| 560 | continue; | 560 | continue; |
| 561 | if (tx->sdata->bss_conf.basic_rates & BIT(idx) && | 561 | if (tx->sdata->vif.bss_conf.basic_rates & BIT(idx) && |
| 562 | (baserate < 0 || | 562 | (baserate < 0 || |
| 563 | (sband->bitrates[baserate].bitrate | 563 | (sband->bitrates[baserate].bitrate |
| 564 | < sband->bitrates[idx].bitrate))) | 564 | < sband->bitrates[idx].bitrate))) |
| @@ -1977,7 +1977,7 @@ struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw, | |||
| 1977 | info->flags |= IEEE80211_TX_CTL_NO_ACK; | 1977 | info->flags |= IEEE80211_TX_CTL_NO_ACK; |
| 1978 | info->flags |= IEEE80211_TX_CTL_CLEAR_PS_FILT; | 1978 | info->flags |= IEEE80211_TX_CTL_CLEAR_PS_FILT; |
| 1979 | info->flags |= IEEE80211_TX_CTL_ASSIGN_SEQ; | 1979 | info->flags |= IEEE80211_TX_CTL_ASSIGN_SEQ; |
| 1980 | if (sdata->bss_conf.use_short_preamble && | 1980 | if (sdata->vif.bss_conf.use_short_preamble && |
| 1981 | sband->bitrates[rsel.rate_idx].flags & IEEE80211_RATE_SHORT_PREAMBLE) | 1981 | sband->bitrates[rsel.rate_idx].flags & IEEE80211_RATE_SHORT_PREAMBLE) |
| 1982 | info->flags |= IEEE80211_TX_CTL_SHORT_PREAMBLE; | 1982 | info->flags |= IEEE80211_TX_CTL_SHORT_PREAMBLE; |
| 1983 | 1983 | ||
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index 3288c3de67ca..ec8b6335f0c1 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c | |||
| @@ -239,7 +239,7 @@ __le16 ieee80211_generic_frame_duration(struct ieee80211_hw *hw, | |||
| 239 | erp = 0; | 239 | erp = 0; |
| 240 | if (vif) { | 240 | if (vif) { |
| 241 | sdata = vif_to_sdata(vif); | 241 | sdata = vif_to_sdata(vif); |
| 242 | short_preamble = sdata->bss_conf.use_short_preamble; | 242 | short_preamble = sdata->vif.bss_conf.use_short_preamble; |
| 243 | if (sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) | 243 | if (sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) |
| 244 | erp = rate->flags & IEEE80211_RATE_ERP_G; | 244 | erp = rate->flags & IEEE80211_RATE_ERP_G; |
| 245 | } | 245 | } |
| @@ -272,7 +272,7 @@ __le16 ieee80211_rts_duration(struct ieee80211_hw *hw, | |||
| 272 | erp = 0; | 272 | erp = 0; |
| 273 | if (vif) { | 273 | if (vif) { |
| 274 | sdata = vif_to_sdata(vif); | 274 | sdata = vif_to_sdata(vif); |
| 275 | short_preamble = sdata->bss_conf.use_short_preamble; | 275 | short_preamble = sdata->vif.bss_conf.use_short_preamble; |
| 276 | if (sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) | 276 | if (sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) |
| 277 | erp = rate->flags & IEEE80211_RATE_ERP_G; | 277 | erp = rate->flags & IEEE80211_RATE_ERP_G; |
| 278 | } | 278 | } |
| @@ -312,7 +312,7 @@ __le16 ieee80211_ctstoself_duration(struct ieee80211_hw *hw, | |||
| 312 | erp = 0; | 312 | erp = 0; |
| 313 | if (vif) { | 313 | if (vif) { |
| 314 | sdata = vif_to_sdata(vif); | 314 | sdata = vif_to_sdata(vif); |
| 315 | short_preamble = sdata->bss_conf.use_short_preamble; | 315 | short_preamble = sdata->vif.bss_conf.use_short_preamble; |
| 316 | if (sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) | 316 | if (sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) |
| 317 | erp = rate->flags & IEEE80211_RATE_ERP_G; | 317 | erp = rate->flags & IEEE80211_RATE_ERP_G; |
| 318 | } | 318 | } |
