diff options
Diffstat (limited to 'package/kernel/mac80211/patches/307-ath9k-fix-regression-in-bssidmask-calculation.patch')
-rw-r--r-- | package/kernel/mac80211/patches/307-ath9k-fix-regression-in-bssidmask-calculation.patch | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/package/kernel/mac80211/patches/307-ath9k-fix-regression-in-bssidmask-calculation.patch b/package/kernel/mac80211/patches/307-ath9k-fix-regression-in-bssidmask-calculation.patch deleted file mode 100644 index d5963925dc..0000000000 --- a/package/kernel/mac80211/patches/307-ath9k-fix-regression-in-bssidmask-calculation.patch +++ /dev/null @@ -1,70 +0,0 @@ -From: Ben Greear <greearb@candelatech.com> -Date: Tue, 4 Nov 2014 15:22:50 -0800 -Subject: [PATCH] ath9k: fix regression in bssidmask calculation - -The commit that went into 3.17: - - ath9k: Summarize hw state per channel context - - Group and set hw state (opmode, primary_sta, beacon conf) per - channel context instead of whole list of vifs. This would allow - each channel context to run in different mode (STA/AP). - - Signed-off-by: Felix Fietkau <nbd@openwrt.org> - Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> - Signed-off-by: John W. Linville <linville@tuxdriver.com> - -broke multi-vif configuration due to not properly calculating -the bssid mask. - -The test case that caught this was: - - create wlan0 and sta0-4 (6 total), not sure how much that matters. - associate all 6 (works fine) - disconnect 5 of them, leaving sta0 up - Start trying to bring up the other 5 one at a time. It will - fail, with iw events looking like this (in these logs, several - sta are trying to come up, but symptom is the same with just one) - -The patch causing the regression made quite a few changes, but -the part I think caused this particular problem was not -recalculating the bssid mask when adding and removing interfaces. - -Re-adding those calls fixes my test case. Fix bad comment -as well. - -Signed-off-by: Ben Greear <greearb@candelatech.com> ---- - ---- a/drivers/net/wireless/ath/ath9k/main.c -+++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -994,9 +994,8 @@ void ath9k_calculate_iter_data(struct at - struct ath_vif *avp; - - /* -- * Pick the MAC address of the first interface as the new hardware -- * MAC address. The hardware will use it together with the BSSID mask -- * when matching addresses. -+ * The hardware will use primary station addr together with the -+ * BSSID mask when matching addresses. - */ - memset(iter_data, 0, sizeof(*iter_data)); - memset(&iter_data->mask, 0xff, ETH_ALEN); -@@ -1225,6 +1224,8 @@ static int ath9k_add_interface(struct ie - list_add_tail(&avp->list, &avp->chanctx->vifs); - } - -+ ath9k_calculate_summary_state(sc, avp->chanctx); -+ - ath9k_assign_hw_queues(hw, vif); - - an->sc = sc; -@@ -1294,6 +1295,8 @@ static void ath9k_remove_interface(struc - - ath_tx_node_cleanup(sc, &avp->mcast_node); - -+ ath9k_calculate_summary_state(sc, avp->chanctx); -+ - mutex_unlock(&sc->mutex); - } - |