From: Bing Zhao Date: Thu, 2 Aug 2012 21:50:34 +0000 (-0700) Subject: UPSTREAM: mwifiex: fix WPS eapol handshake failure X-Git-Url: http://git.cascardo.eti.br/?a=commitdiff_plain;h=f80b74db9e170f11049056ed3159b3e0c80b5981;p=cascardo%2Flinux.git UPSTREAM: mwifiex: fix WPS eapol handshake failure commit f03ba7e9a24e5e9efaad56bd1713b994ea556b16 upstream. After association, STA will go through eapol handshake with WPS enabled AP. It's observed that WPS handshake fails with some 11n AP. The reason for the failure is that the eapol packet is sent via 11n frame aggregation. The eapol packet should be sent directly without 11n aggregation. This patch fixes the problem by adding WPS session control while dequeuing Tx packets for transmission. Signed-off-by: Stone Piao Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman BUG=chrome-os-partner:12190 TEST=Build and run autotest WiFiMatFunc, WiFiSecMat, WiFiManager, WiFiPerf Change-Id: I19c6250f8d63e1c9c7440d95d8d09fc16f6393b2 Reviewed-on: https://gerrit.chromium.org/gerrit/29090 Reviewed-by: Sam Leffler Tested-by: Bing Zhao Commit-Ready: Bing Zhao --- diff --git a/drivers/net/wireless/mwifiex/wmm.c b/drivers/net/wireless/mwifiex/wmm.c index 0797c2eac5b8..3e6abf018b52 100644 --- a/drivers/net/wireless/mwifiex/wmm.c +++ b/drivers/net/wireless/mwifiex/wmm.c @@ -1211,6 +1211,7 @@ mwifiex_dequeue_tx_packet(struct mwifiex_adapter *adapter) if (!ptr->is_11n_enabled || mwifiex_is_ba_stream_setup(priv, ptr, tid) || + priv->wps.session_enable || ((priv->sec_info.wpa_enabled || priv->sec_info.wpa2_enabled) && !priv->wpa_is_gtk_set)) {