diff options
author | Marty Faltesek <mfaltesek@google.com> | 2015-10-25 22:54:01 -0700 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2015-10-28 21:00:01 +0200 |
commit | 0117e78aec73f1c0869e50d11a255b28aa4db8f0 (patch) | |
tree | b667a7027e03c5aaa62e87105235dd16ae05fb15 /drivers/net/wireless/mwifiex/uap_event.c | |
parent | 072255241d2e3e9c1e23fc693f0333be72adfe2a (diff) | |
download | op-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.c | 7 |
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, |