diff options
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r-- | net/mac80211/tx.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 140da4a7f13d..4961168f5091 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -520,6 +520,7 @@ ieee80211_tx_h_rate_ctrl(struct ieee80211_tx_data *tx) | |||
520 | txrc.skb = tx->skb; | 520 | txrc.skb = tx->skb; |
521 | txrc.reported_rate.idx = -1; | 521 | txrc.reported_rate.idx = -1; |
522 | txrc.max_rate_idx = tx->sdata->max_ratectrl_rateidx; | 522 | txrc.max_rate_idx = tx->sdata->max_ratectrl_rateidx; |
523 | txrc.ap = tx->sdata->vif.type == NL80211_IFTYPE_AP; | ||
523 | 524 | ||
524 | /* set up RTS protection if desired */ | 525 | /* set up RTS protection if desired */ |
525 | if (len > tx->local->hw.wiphy->rts_threshold) { | 526 | if (len > tx->local->hw.wiphy->rts_threshold) { |
@@ -2060,6 +2061,7 @@ struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw *hw, | |||
2060 | struct beacon_data *beacon; | 2061 | struct beacon_data *beacon; |
2061 | struct ieee80211_supported_band *sband; | 2062 | struct ieee80211_supported_band *sband; |
2062 | enum ieee80211_band band = local->hw.conf.channel->band; | 2063 | enum ieee80211_band band = local->hw.conf.channel->band; |
2064 | struct ieee80211_tx_rate_control txrc; | ||
2063 | 2065 | ||
2064 | sband = local->hw.wiphy->bands[band]; | 2066 | sband = local->hw.wiphy->bands[band]; |
2065 | 2067 | ||
@@ -2167,21 +2169,21 @@ struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw *hw, | |||
2167 | info = IEEE80211_SKB_CB(skb); | 2169 | info = IEEE80211_SKB_CB(skb); |
2168 | 2170 | ||
2169 | info->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT; | 2171 | info->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT; |
2172 | info->flags |= IEEE80211_TX_CTL_NO_ACK; | ||
2170 | info->band = band; | 2173 | info->band = band; |
2171 | /* | 2174 | |
2172 | * XXX: For now, always use the lowest rate | 2175 | memset(&txrc, 0, sizeof(txrc)); |
2173 | */ | 2176 | txrc.hw = hw; |
2174 | info->control.rates[0].idx = 0; | 2177 | txrc.sband = sband; |
2175 | info->control.rates[0].count = 1; | 2178 | txrc.bss_conf = &sdata->vif.bss_conf; |
2176 | info->control.rates[1].idx = -1; | 2179 | txrc.skb = skb; |
2177 | info->control.rates[2].idx = -1; | 2180 | txrc.reported_rate.idx = -1; |
2178 | info->control.rates[3].idx = -1; | 2181 | txrc.max_rate_idx = sdata->max_ratectrl_rateidx; |
2179 | info->control.rates[4].idx = -1; | 2182 | txrc.ap = true; |
2180 | BUILD_BUG_ON(IEEE80211_TX_MAX_RATES != 5); | 2183 | rate_control_get_rate(sdata, NULL, &txrc); |
2181 | 2184 | ||
2182 | info->control.vif = vif; | 2185 | info->control.vif = vif; |
2183 | 2186 | ||
2184 | info->flags |= IEEE80211_TX_CTL_NO_ACK; | ||
2185 | info->flags |= IEEE80211_TX_CTL_CLEAR_PS_FILT; | 2187 | info->flags |= IEEE80211_TX_CTL_CLEAR_PS_FILT; |
2186 | info->flags |= IEEE80211_TX_CTL_ASSIGN_SEQ; | 2188 | info->flags |= IEEE80211_TX_CTL_ASSIGN_SEQ; |
2187 | out: | 2189 | out: |