wlan: Change conn_state to connecting before sme_RoamConnect
sme_RoamConnect() has a direct path to call hdd_smeRoamCallback(),
which will change the conn_state.
If direct path, conn_state will be accordingly changed to
NotConnected or Associated.
Driver is not changing connection state to eConnectionState_Connecting
when connecting with iwconfig.
If connection state is not changed, connection state will remain
in eConnectionState_NotConnected state.
In hdd_AssociationCompletionHandler, "hddDisconInProgress" is set
to true if conn state is eConnectionState_NotConnected.
If "hddDisconInProgress" is set to true then cfg80211 layer is not
informed of connect result indication which is an issue.
Change-Id: Ieeaef582a04aa90ddcdcc373b00b68442c795337
CRs-Fixed: 900008
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 41c3865..d51e7e0 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -11466,18 +11466,29 @@
hdd_select_cbmode(pAdapter,operatingChannel);
}
- /* change conn_state to connecting before sme_RoamConnect(), because sme_RoamConnect()
- * has a direct path to call hdd_smeRoamCallback(), which will change the conn_state
- * If direct path, conn_state will be accordingly changed to NotConnected or Associated
- * by either hdd_AssociationCompletionHandler() or hdd_DisConnectHandler() in sme_RoamCallback()
- * if sme_RomConnect is to be queued, Connecting state will remain until it is completed.
- */
+ /*
+ * Change conn_state to connecting before sme_RoamConnect(),
+ * because sme_RoamConnect() has a direct path to call
+ * hdd_smeRoamCallback(), which will change the conn_state
+ * If direct path, conn_state will be accordingly changed
+ * to NotConnected or Associated by either
+ * hdd_AssociationCompletionHandler() or hdd_DisConnectHandler()
+ * in sme_RoamCallback()
+ * if sme_RomConnect is to be queued,
+ * Connecting state will remain until it is completed.
+ * If connection state is not changed,
+ * connection state will remain in eConnectionState_NotConnected state.
+ * In hdd_AssociationCompletionHandler, "hddDisconInProgress" is set to true
+ * if conn state is eConnectionState_NotConnected.
+ * If "hddDisconInProgress" is set to true then cfg80211 layer is not
+ * informed of connect result indication which is an issue.
+ */
+
if (WLAN_HDD_INFRA_STATION == pAdapter->device_mode ||
WLAN_HDD_P2P_CLIENT == pAdapter->device_mode)
{
VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
- "%s: Set HDD connState to eConnectionState_Connecting",
- __func__);
+ FL("Set HDD connState to eConnectionState_Connecting"));
hdd_connSetConnectionState(WLAN_HDD_GET_STATION_CTX_PTR(pAdapter),
eConnectionState_Connecting);
}
@@ -11489,8 +11500,9 @@
WLAN_HDD_P2P_CLIENT == pAdapter->device_mode))
{
- hddLog(VOS_TRACE_LEVEL_ERROR, "%s: sme_RoamConnect (session %d) failed with "
- "status %d. -> NotConnected", __func__, pAdapter->sessionId, status);
+ hddLog(VOS_TRACE_LEVEL_ERROR,
+ FL("sme_RoamConnect (session %d) failed with status %d. -> NotConnected"),
+ pAdapter->sessionId, status);
/* change back to NotAssociated */
hdd_connSetConnectionState(WLAN_HDD_GET_STATION_CTX_PTR(pAdapter),
eConnectionState_NotConnected);