summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/uap_event.c
diff options
context:
space:
mode:
authorMarty Faltesek <mfaltesek@google.com>2015-10-25 22:54:01 -0700
committerKalle Valo <kvalo@codeaurora.org>2015-10-28 21:00:01 +0200
commit0117e78aec73f1c0869e50d11a255b28aa4db8f0 (patch)
treeb667a7027e03c5aaa62e87105235dd16ae05fb15 /drivers/net/wireless/mwifiex/uap_event.c
parent072255241d2e3e9c1e23fc693f0333be72adfe2a (diff)
downloadop-kernel-dev-0117e78aec73f1c0869e50d11a255b28aa4db8f0.zip
op-kernel-dev-0117e78aec73f1c0869e50d11a255b28aa4db8f0.tar.gz
mwifiex: toggle carrier state in start_ap/stop_ap.
In uap mode the carrier is not enabled until after the first STA joins. The carrier triggers the bridge to start its state machine, and if STP is enabled, it takes 4 seconds as it transitions from disabled to forwarding. During this time the bridge drops all traffic, and the EAPOL handshake times out after 3 seconds, preventing stations from joining. Follow the logic used in mac80211 and start the carrier in start_ap and disable it in stop_ap. This has a nice benefit of allowing the first station connection time to be reduced by up to 75% when STP is in use. Signed-off-by: Martin Faltesek <mfaltesek@google.com> Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/mwifiex/uap_event.c')
-rw-r--r--drivers/net/wireless/mwifiex/uap_event.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/drivers/net/wireless/mwifiex/uap_event.c b/drivers/net/wireless/mwifiex/uap_event.c
index 078834c..86ff542 100644
--- a/drivers/net/wireless/mwifiex/uap_event.c
+++ b/drivers/net/wireless/mwifiex/uap_event.c
@@ -179,19 +179,12 @@ int mwifiex_process_uap_event(struct mwifiex_private *priv)
case EVENT_UAP_BSS_IDLE:
priv->media_connected = false;
priv->port_open = false;
- if (netif_carrier_ok(priv->netdev))
- netif_carrier_off(priv->netdev);
- mwifiex_stop_net_dev_queue(priv->netdev, adapter);
-
mwifiex_clean_txrx(priv);
mwifiex_del_all_sta_list(priv);
break;
case EVENT_UAP_BSS_ACTIVE:
priv->media_connected = true;
priv->port_open = true;
- if (!netif_carrier_ok(priv->netdev))
- netif_carrier_on(priv->netdev);
- mwifiex_wake_up_net_dev_queue(priv->netdev, adapter);
break;
case EVENT_UAP_BSS_START:
mwifiex_dbg(adapter, EVENT,
OpenPOWER on IntegriCloud