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 | ba249bc955419f3d0a943ea3a111ece1624a9291 (patch) | |
tree | bfc65099ff31b88fae4b5189069c4217c3ad880d /package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch | |
parent | 4beed12d85947f6eb7c935d2f9a90f1999379977 (diff) | |
download | upstream-ba249bc955419f3d0a943ea3a111ece1624a9291.tar.gz upstream-ba249bc955419f3d0a943ea3a111ece1624a9291.tar.bz2 upstream-ba249bc955419f3d0a943ea3a111ece1624a9291.zip |
ath10k-ct: 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 can break for example 5GHz meshpoint interfaces
because 0 maps to a CCK rate (11Mbit/s).
It must also be avoided that the ath10k-ct internal state for the rates is
not synced with the mac80211 rates state. Otherwise, the user specified
rate (e.g. a wifi-iface mcast_rate for a meshpoint interface) will only be
set on startup. And a short while after that, ath10k-ct specific code in
ath10k_check_apply_special_rates is missing a valid rate in its own
structures and is then recalculating a new default rate. This default rate
is in most situations not the requested rate.
Fixes: 4df3c71cd4c5 ("ath10k-ct: Update to 2018-12-11 and use version based on 4.19")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Diffstat (limited to 'package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch')
-rw-r--r-- | package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch b/package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch new file mode 100644 index 0000000000..9c74f1d967 --- /dev/null +++ b/package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch @@ -0,0 +1,37 @@ +From: Sven Eckelmann <sven@narfation.org> +Date: Tue, 26 Feb 2019 08:06:35 +0100 +Subject: ath10k-ct: apply mac80211 rates to ath10k-ct rate state + +The rates from mac80211 have to be copied to the state of ath10k-ct or +otherwise the ath10k_check_apply_special_rates function overwrites +them again with some default values. This breaks for example the +mcast_rate set for a wifi-iface. + +Signed-off-by: Sven Eckelmann <sven@narfation.org> + +--- a/ath10k-4.19/mac.c ++++ b/ath10k-4.19/mac.c +@@ -6460,6 +6460,7 @@ static void ath10k_bss_info_changed(stru + "mac vdev %d mcast_rate %x\n", + arvif->vdev_id, rate); + ++ arvif->mcast_rate[band] = rate; + vdev_param = ar->wmi.vdev_param->mcast_data_rate; + ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, + vdev_param, rate); +@@ -6468,6 +6469,7 @@ static void ath10k_bss_info_changed(stru + "failed to set mcast rate on vdev %i: %d\n", + arvif->vdev_id, ret); + ++ arvif->bcast_rate[band] = rate; + vdev_param = ar->wmi.vdev_param->bcast_data_rate; + ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, + vdev_param, rate); +@@ -6494,6 +6496,7 @@ static void ath10k_bss_info_changed(stru + return; + } + ++ arvif->mgt_rate[def.chan->band] = hw_rate_code; + vdev_param = ar->wmi.vdev_param->mgmt_rate; + ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, + hw_rate_code); |