Message ID | 1484908002-22568-1-git-send-email-koen.vandeputte@ncentric.com |
---|---|
State | Changes Requested |
Headers | show |
On 2017-01-20 11:26, Koen Vandeputte wrote:
> Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
To get the filenames right, please use import-backports.sh from
package/kernel/mac80211/scripts:
- export the commit from a git tree with git-format-patch -o <dir>
- in the mac80211 build dir unpacked with QUILT=1 switch to the last 3xx
patch
- run import-backports.sh 300 /path/to/patchfile.patch
- Felix
On 2017-01-20 11:33, Felix Fietkau wrote: > On 2017-01-20 11:26, Koen Vandeputte wrote: >> Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> > To get the filenames right, please use import-backports.sh from > package/kernel/mac80211/scripts: > > - export the commit from a git tree with git-format-patch -o <dir> > - in the mac80211 build dir unpacked with QUILT=1 switch to the last 3xx > patch > - run import-backports.sh 300 /path/to/patchfile.patch Ok, will do Thanks > - Felix
On 20 January 2017 at 11:33, Felix Fietkau <nbd@nbd.name> wrote: > On 2017-01-20 11:26, Koen Vandeputte wrote: >> Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> > To get the filenames right, please use import-backports.sh from > package/kernel/mac80211/scripts: > > - export the commit from a git tree with git-format-patch -o <dir> > - in the mac80211 build dir unpacked with QUILT=1 switch to the last 3xx > patch > - run import-backports.sh 300 /path/to/patchfile.patch This is a set of commands I use: make package/kernel/mac80211/clean make package/kernel/mac80211/prepare QUILT=1 V=s cd build_dir/target-*/linux-*/compat-wireless-*/ quilt push $(quilt series | egrep "^3" | tail -n 1) ../../../../package/kernel/mac80211/scripts/import-backports.sh 300 /path/to/commit.patch quilt push -a cd ../../../.. make package/kernel/mac80211/update V=s git status
diff --git a/package/kernel/mac80211/patches/354-calc-minchannelwidth-correctly.patch b/package/kernel/mac80211/patches/354-calc-minchannelwidth-correctly.patch new file mode 100644 index 0000000..60e6589 --- /dev/null +++ b/package/kernel/mac80211/patches/354-calc-minchannelwidth-correctly.patch @@ -0,0 +1,57 @@ +From 96aa2e7cf126773b16c6c19b7474a8a38d3c707e Mon Sep 17 00:00:00 2001 +From: Johannes Berg <johannes.berg@intel.com> +Date: Fri, 7 Oct 2016 12:23:49 +0200 +Subject: [PATCH] mac80211: calculate min channel width correctly + +In the current minimum chandef code there's an issue in that the +recalculation can happen after rate control is initialized for a +station that has a wider bandwidth than the current chanctx, and +then rate control can immediately start using those higher rates +which could cause problems. + +Observe that first of all that this problem is because we don't +take non-associated and non-uploaded stations into account. The +restriction to non-associated is quite pointless and is one of +the causes for the problem described above, since the rate init +will happen before the station is set to associated; no frames +could actually be sent until associated, but the rate table can +already contain higher rates and that might cause problems. + +Also, rejecting non-uploaded stations is wrong, since the rate +control can select higher rates for those as well. + +Secondly, it's then necessary to recalculate the minimal config +before initializing rate control, so that when rate control is +initialized, the higher rates are already available. This can be +done easily by adding the necessary function call in rate init. + +Change-Id: Ib9bc02d34797078db55459d196993f39dcd43070 +Signed-off-by: Johannes Berg <johannes.berg@intel.com> +--- + net/mac80211/chan.c | 3 --- + net/mac80211/rate.c | 2 ++ + 2 files changed, 2 insertions(+), 3 deletions(-) + +--- a/net/mac80211/chan.c ++++ b/net/mac80211/chan.c +@@ -231,9 +231,6 @@ ieee80211_get_max_required_bw(struct iee + !(sta->sdata->bss && sta->sdata->bss == sdata->bss)) + continue; + +- if (!sta->uploaded || !test_sta_flag(sta, WLAN_STA_ASSOC)) +- continue; +- + max_bw = max(max_bw, ieee80211_get_sta_bw(&sta->sta)); + } + rcu_read_unlock(); +--- a/net/mac80211/rate.c ++++ b/net/mac80211/rate.c +@@ -40,6 +40,8 @@ void rate_control_rate_init(struct sta_i + + ieee80211_sta_set_rx_nss(sta); + ++ ieee80211_recalc_min_chandef(sta->sdata); ++ + if (!ref) + return; +
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> --- .../354-calc-minchannelwidth-correctly.patch | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 package/kernel/mac80211/patches/354-calc-minchannelwidth-correctly.patch