Ver código fonte

qcacld-3.0: Return native os error code from hdd connect api

If hdd connect api fails it returns QDF status to supplicant.
Supplicant does not like positive error code and expects mode
data from driver and in absence of more data from driver it
triggers driver unload.

Add fix to convert qdf status to native os status before returning
error code to user space.

Change-Id: I375189bcf6b2974901b29a38cf33d0f0f2319a1b
CRs-Fixed: 1111393
Rajeev Kumar 8 anos atrás
pai
commit
d31e154df3
1 arquivos alterados com 6 adições e 4 exclusões
  1. 6 4
      core/hdd/src/wlan_hdd_cfg80211.c

+ 6 - 4
core/hdd/src/wlan_hdd_cfg80211.c

@@ -11859,6 +11859,7 @@ static int wlan_hdd_cfg80211_connect_start(hdd_adapter_t *pAdapter,
 				    enum nl80211_chan_width ch_width)
 {
 	int status = 0;
+	QDF_STATUS qdf_status;
 	hdd_wext_state_t *pWextState;
 	hdd_context_t *pHddCtx;
 	hdd_station_ctx_t *hdd_sta_ctx;
@@ -12138,16 +12139,17 @@ static int wlan_hdd_cfg80211_connect_start(hdd_adapter_t *pAdapter,
 
 		qdf_runtime_pm_prevent_suspend(pAdapter->connect_rpm_ctx.
 					       connect);
-		status = sme_roam_connect(WLAN_HDD_GET_HAL_CTX(pAdapter),
+		qdf_status = sme_roam_connect(WLAN_HDD_GET_HAL_CTX(pAdapter),
 					  pAdapter->sessionId, pRoamProfile,
 					  &roamId);
 
-		if ((QDF_STATUS_SUCCESS != status) &&
+		if ((QDF_STATUS_SUCCESS != qdf_status) &&
 		    (QDF_STA_MODE == pAdapter->device_mode ||
 		     QDF_P2P_CLIENT_MODE == pAdapter->device_mode)) {
 			hdd_err("sme_roam_connect (session %d) failed with "
-			       "status %d. -> NotConnected",
-			       pAdapter->sessionId, status);
+			       "qdf_status %d. -> NotConnected",
+			       pAdapter->sessionId, qdf_status);
+			status = qdf_status_to_os_return(qdf_status);
 			/* change back to NotAssociated */
 			hdd_conn_set_connection_state(pAdapter,
 						      eConnectionState_NotConnected);