X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=package%2Fmac80211%2Fpatches%2F550-mac80211_optimize_mcs_rate_mask.patch;h=f778338092c6a1bdb42336ca3fa0706a7fbb93b7;hb=43555e0fe2655008418be332d06fbbe465b46d49;hp=a7e1fc1b6f4d0d127254d44099c610032cf900c8;hpb=e8bb79e1007eb666b5ff38e6033ed1a7e9cda90d;p=openwrt.git diff --git a/package/mac80211/patches/550-mac80211_optimize_mcs_rate_mask.patch b/package/mac80211/patches/550-mac80211_optimize_mcs_rate_mask.patch index a7e1fc1b6f..f778338092 100644 --- a/package/mac80211/patches/550-mac80211_optimize_mcs_rate_mask.patch +++ b/package/mac80211/patches/550-mac80211_optimize_mcs_rate_mask.patch @@ -1,6 +1,6 @@ --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h -@@ -726,6 +726,8 @@ struct ieee80211_sub_if_data { +@@ -715,6 +715,8 @@ struct ieee80211_sub_if_data { /* bitmap of allowed (non-MCS) rate indexes for rate control */ u32 rc_rateidx_mask[IEEE80211_NUM_BANDS]; @@ -11,7 +11,7 @@ union { --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -1933,9 +1933,20 @@ static int ieee80211_set_bitrate_mask(st +@@ -2160,9 +2160,20 @@ static int ieee80211_set_bitrate_mask(st } for (i = 0; i < IEEE80211_NUM_BANDS; i++) { @@ -34,7 +34,7 @@ return 0; --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -3645,7 +3645,7 @@ void ieee80211_send_bar(struct ieee80211 +@@ -3721,7 +3721,7 @@ void ieee80211_send_bar(struct ieee80211 * (deprecated; this will be removed once drivers get updated to use * rate_idx_mask) * @rate_idx_mask: user-requested (legacy) rate mask @@ -43,7 +43,7 @@ * @bss: whether this frame is sent out in AP or IBSS mode */ struct ieee80211_tx_rate_control { -@@ -3657,7 +3657,7 @@ struct ieee80211_tx_rate_control { +@@ -3733,7 +3733,7 @@ struct ieee80211_tx_rate_control { bool rts, short_preamble; u8 max_rate_idx; u32 rate_idx_mask; @@ -54,22 +54,22 @@ --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -642,9 +642,11 @@ ieee80211_tx_h_rate_ctrl(struct ieee8021 +@@ -631,9 +631,11 @@ ieee80211_tx_h_rate_ctrl(struct ieee8021 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[tx->channel->band], +- tx->sdata->rc_rateidx_mcs_mask[info->band], - sizeof(txrc.rate_idx_mcs_mask)); + -+ if (tx->sdata->rc_has_mcs_mask[tx->channel->band]) ++ if (tx->sdata->rc_has_mcs_mask[info->band]) + txrc.rate_idx_mcs_mask = -+ tx->sdata->rc_rateidx_mcs_mask[tx->channel->band]; ++ 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); -@@ -2479,8 +2481,6 @@ struct sk_buff *ieee80211_beacon_get_tim +@@ -2449,8 +2451,6 @@ struct sk_buff *ieee80211_beacon_get_tim txrc.max_rate_idx = -1; else txrc.max_rate_idx = fls(txrc.rate_idx_mask) - 1;