summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/ath9k/common.h
diff options
context:
space:
mode:
authorBenjamin Berg <benjamin.berg@open-mesh.com>2016-07-04 14:37:25 +0200
committerKalle Valo <kvalo@qca.qualcomm.com>2016-07-08 17:03:41 +0300
commitcfda2d8e2314d195902653bdd689e23b287e7d45 (patch)
treebab79aee376f9a95e4794fb4a6da2e4c72ebadbe /drivers/net/wireless/ath/ath9k/common.h
parent11b0ac2e0c1c943c71fd89a6029a3995a0ca7e76 (diff)
downloadlwn-cfda2d8e2314d195902653bdd689e23b287e7d45.tar.gz
lwn-cfda2d8e2314d195902653bdd689e23b287e7d45.zip
ath9k: Fix beacon configuration for addition/removal of interfaces
This patch fixes some issues with interface reconfiguration. It could for example happen that an AP interface in beacon slot 0 was removed leaving an IBSS station in one of the other slots. When this happens the driver never sends out the beacon as it only tries to send a beacon from slot 0. Appart from that the tracking of required changes to the beacon config is relatively complicated and prone to errors. The approach taken here is to solve reconfiguration issues is to reconfigure the beacons when any interface changes. This means that the complexity of deciding whether an interface change may modify the beacon configuration is gone. It also means that the beacon config will be reliably updated when an interface is removed. The issue that a single non-AP interface might not be in beacon slot 0 and wouldn't be send out is solved by moving it into the first slot. The TSF value in hardware is adjusted accordingly so that the timestamp of the beacons stay consistent. Signed-off-by: Benjamin Berg <benjamin.berg@open-mesh.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/common.h')
-rw-r--r--drivers/net/wireless/ath/ath9k/common.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/common.h b/drivers/net/wireless/ath/ath9k/common.h
index d23737342f4f..f0ab6f9955e4 100644
--- a/drivers/net/wireless/ath/ath9k/common.h
+++ b/drivers/net/wireless/ath/ath9k/common.h
@@ -50,6 +50,7 @@
#define IEEE80211_MS_TO_TU(x) (((x) * 1000) / 1024)
struct ath_beacon_config {
+ struct ieee80211_vif *main_vif;
int beacon_interval;
u16 dtim_period;
u16 bmiss_timeout;