diff options
author | Sven Eckelmann <sven@narfation.org> | 2019-02-25 20:42:28 +0100 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2019-02-26 23:20:04 +0100 |
commit | 4beed12d85947f6eb7c935d2f9a90f1999379977 (patch) | |
tree | 914de17b917d64a166046cad3620e56bf3094106 /package | |
parent | b1c614784d006cea3f91ac02f816019f1da7abbd (diff) | |
download | upstream-4beed12d85947f6eb7c935d2f9a90f1999379977.tar.gz upstream-4beed12d85947f6eb7c935d2f9a90f1999379977.tar.bz2 upstream-4beed12d85947f6eb7c935d2f9a90f1999379977.zip |
mac80211: ath10k: fix incorrect multicast/broadcast rate setting
If no mcast_rate is set for the wifi-iface then there is no rate_idx (0)
set for the bss. This breaks for example 5GHz meshpoint interfaces because
0 maps to a CCK rate (11Mbit/s).
Fixes: db90c243a0b9 ("mac80211: update to version based on 4.19-rc4")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Diffstat (limited to 'package')
-rw-r--r-- | package/kernel/mac80211/Makefile | 2 | ||||
-rw-r--r-- | package/kernel/mac80211/patches/ath/979-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch | 43 |
2 files changed, 44 insertions, 1 deletions
diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index f649b6bcca..13b5823614 100644 --- a/package/kernel/mac80211/Makefile +++ b/package/kernel/mac80211/Makefile @@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=mac80211 PKG_VERSION:=4.19.23-1 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.23/ PKG_HASH:=703e940b542eb56067fcd847a7c69398dcc9829f34472647eea4211cb2ab3b83 diff --git a/package/kernel/mac80211/patches/ath/979-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch b/package/kernel/mac80211/patches/ath/979-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch new file mode 100644 index 0000000000..8695b7e094 --- /dev/null +++ b/package/kernel/mac80211/patches/ath/979-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch @@ -0,0 +1,43 @@ +From: Pradeep kumar Chitrapu <pradeepc@codeaurora.org> +Date: Mon, 10 Dec 2018 20:56:11 -0800 +Subject: ath10k: fix incorrect multicast/broadcast rate setting + +Invalid rate code is sent to firmware when multicast rate value of 0 is +sent to driver indicating disabled case, causing broken mesh path. +so fix that. + +Tested on QCA9984 with firmware 10.4-3.6.1-00827 + +Fixes: cd93b83ad92 ("ath10k: support for multicast rate control") +Co-developed-by: Zhi Chen <zhichen@codeaurora.org> +Signed-off-by: Zhi Chen <zhichen@codeaurora.org> +Signed-off-by: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org> + +Origin: other, https://patchwork.kernel.org/patch/10723033/ + +--- a/drivers/net/wireless/ath/ath10k/mac.c ++++ b/drivers/net/wireless/ath/ath10k/mac.c +@@ -5484,8 +5484,8 @@ static void ath10k_bss_info_changed(stru + struct cfg80211_chan_def def; + u32 vdev_param, pdev_param, slottime, preamble; + u16 bitrate, hw_value; +- u8 rate, basic_rate_idx; +- int rateidx, ret = 0, hw_rate_code; ++ u8 rate, basic_rate_idx, rateidx; ++ int ret = 0, hw_rate_code, mcast_rate; + enum nl80211_band band; + const struct ieee80211_supported_band *sband; + +@@ -5658,7 +5658,11 @@ static void ath10k_bss_info_changed(stru + if (changed & BSS_CHANGED_MCAST_RATE && + !WARN_ON(ath10k_mac_vif_chan(arvif->vif, &def))) { + band = def.chan->band; +- rateidx = vif->bss_conf.mcast_rate[band] - 1; ++ mcast_rate = vif->bss_conf.mcast_rate[band]; ++ if (mcast_rate > 0) ++ rateidx = mcast_rate - 1; ++ else ++ rateidx = ffs(vif->bss_conf.basic_rates) - 1; + + if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY) + rateidx += ATH10K_MAC_FIRST_OFDM_RATE_IDX; |