소스 검색

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 년 전
부모
커밋
d31e154df3
1개의 변경된 파일6개의 추가작업 그리고 4개의 파일을 삭제
  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);