From f455ccf2758b3d499f950671d32150aa7c88952f Mon Sep 17 00:00:00 2001 From: Fsick <32356339+Fsick@users.noreply.github.com> Date: Thu, 29 Nov 2018 23:36:08 +0800 Subject: [PATCH] mt76: update to the latest version and mac80211: fix reordering of buffered broadcast packets * mt76: update to the latest version * mt76: update to the latest version * mac80211: fix reordering of buffered broadcast packets --- ...rdering-of-buffered-broadcast-packet.patch | 28 +++++++++++++++++++ package/kernel/mt76/Makefile | 6 ++-- 2 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 package/kernel/mac80211/patches/subsys/380-mac80211-fix-reordering-of-buffered-broadcast-packet.patch diff --git a/package/kernel/mac80211/patches/subsys/380-mac80211-fix-reordering-of-buffered-broadcast-packet.patch b/package/kernel/mac80211/patches/subsys/380-mac80211-fix-reordering-of-buffered-broadcast-packet.patch new file mode 100644 index 000000000..904b75a6f --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/380-mac80211-fix-reordering-of-buffered-broadcast-packet.patch @@ -0,0 +1,28 @@ +From: Felix Fietkau +Date: Wed, 28 Nov 2018 22:36:06 +0100 +Subject: [PATCH] mac80211: fix reordering of buffered broadcast packets + +If the buffered broadcast queue contains packets, letting new packets bypass +that queue can lead to heavy reordering, since the driver is probably throttling +transmission of buffered multicast packets after beacons. + +Keep buffering packets until the buffer has been cleared (and no client +is in powersave mode). + +Cc: stable@vger.kernel.org +Signed-off-by: Felix Fietkau +--- + +--- a/net/mac80211/tx.c ++++ b/net/mac80211/tx.c +@@ -435,8 +435,8 @@ ieee80211_tx_h_multicast_ps_buf(struct i + if (ieee80211_hw_check(&tx->local->hw, QUEUE_CONTROL)) + info->hw_queue = tx->sdata->vif.cab_queue; + +- /* no stations in PS mode */ +- if (!atomic_read(&ps->num_sta_ps)) ++ /* no stations in PS mode and no buffered packets */ ++ if (!atomic_read(&ps->num_sta_ps) && skb_queue_empty(&ps->bc_buf)) + return TX_CONTINUE; + + info->flags |= IEEE80211_TX_CTL_SEND_AFTER_DTIM; \ No newline at end of file diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile index 6d508bbe3..582a0852e 100644 --- a/package/kernel/mt76/Makefile +++ b/package/kernel/mt76/Makefile @@ -8,9 +8,9 @@ PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/openwrt/mt76 PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2018-11-16.1 -PKG_SOURCE_VERSION:=96b3b3d60da10fc64ce56d06e431bf2e3f9a4514 -PKG_MIRROR_HASH:=2b2add0bb87186a280435f864d54a5e43290ba05999a6a088f1ea2cb54b2144f +PKG_SOURCE_DATE:=2018-11-28 +PKG_SOURCE_VERSION:=44bb37288cb7a76d710da9334d9e0b1b6627476a +PKG_MIRROR_HASH:=0d11c67a765a74632936865e1eacd40eca733fb89affc6429ebd7a13e4b044b3 PKG_MAINTAINER:=Felix Fietkau PKG_BUILD_PARALLEL:=1