|
@@ -642,9 +642,11 @@ ieee80211_tx_h_rate_ctrl(struct ieee80211_tx_data *tx)
|
|
|
txrc.max_rate_idx = -1;
|
|
|
else
|
|
|
txrc.max_rate_idx = fls(txrc.rate_idx_mask) - 1;
|
|
|
- memcpy(txrc.rate_idx_mcs_mask,
|
|
|
- tx->sdata->rc_rateidx_mcs_mask[info->band],
|
|
|
- sizeof(txrc.rate_idx_mcs_mask));
|
|
|
+
|
|
|
+ if (tx->sdata->rc_has_mcs_mask[info->band])
|
|
|
+ txrc.rate_idx_mcs_mask =
|
|
|
+ tx->sdata->rc_rateidx_mcs_mask[info->band];
|
|
|
+
|
|
|
txrc.bss = (tx->sdata->vif.type == NL80211_IFTYPE_AP ||
|
|
|
tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
|
|
|
tx->sdata->vif.type == NL80211_IFTYPE_ADHOC);
|
|
@@ -2508,8 +2510,6 @@ struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw *hw,
|
|
|
txrc.max_rate_idx = -1;
|
|
|
else
|
|
|
txrc.max_rate_idx = fls(txrc.rate_idx_mask) - 1;
|
|
|
- memcpy(txrc.rate_idx_mcs_mask, sdata->rc_rateidx_mcs_mask[band],
|
|
|
- sizeof(txrc.rate_idx_mcs_mask));
|
|
|
txrc.bss = true;
|
|
|
rate_control_get_rate(sdata, NULL, &txrc);
|
|
|
|