소스 검색

qcacld-3.0: Trigger SSR if pe session already exist for vdev

Trigger SSR if pe session already exist for vdev, i.e vdev is
not in init state during connect req.

Also Add SSR if roam command timeout.

Change-Id: I83be76215f5c4daca2429a2528f825baabed92e3
CRs-Fixed: 2982362
Abhishek Singh 4 년 전
부모
커밋
cd8f5cc201
2개의 변경된 파일10개의 추가작업 그리고 0개의 파일을 삭제
  1. 5 0
      core/mac/src/pe/lim/lim_process_sme_req_messages.c
  2. 5 0
      core/sme/src/common/sme_api.c

+ 5 - 0
core/mac/src/pe/lim/lim_process_sme_req_messages.c

@@ -1183,6 +1183,8 @@ static QDF_STATUS lim_send_join_req(struct pe_session *session,
 			session->vdev_id,
 			wlan_vdev_mlme_get_state(session->vdev),
 			wlan_vdev_mlme_get_substate(session->vdev));
+		qdf_trigger_self_recovery(session->mac_ctx->psoc,
+					  QDF_VDEV_SM_OUT_OF_SYNC);
 		return status;
 	}
 	status = mlme_set_assoc_type(session->vdev, VDEV_ASSOC);
@@ -3064,6 +3066,9 @@ lim_cm_create_session(struct mac_context *mac_ctx, struct cm_vdev_join_req *req)
 		       pe_session->vdev_id,
 		       QDF_MAC_ADDR_REF(req->entry->bssid.bytes),
 		       pe_session->limSmeState);
+
+		qdf_trigger_self_recovery(mac_ctx->psoc,
+					  QDF_VDEV_SM_OUT_OF_SYNC);
 		return NULL;
 	}
 

+ 5 - 0
core/sme/src/common/sme_api.c

@@ -595,6 +595,11 @@ QDF_STATUS sme_ser_cmd_callback(struct wlan_serialization_command *cmd,
 		csr_release_command_buffer(mac_ctx, sme_cmd);
 		break;
 	case WLAN_SER_CB_ACTIVE_CMD_TIMEOUT:
+		sme_cmd = cmd->umac_cmd;
+		if (sme_cmd && (sme_cmd->command == eSmeCommandRoam ||
+		    sme_cmd->command == eSmeCommandWmStatusChange))
+			qdf_trigger_self_recovery(mac_ctx->psoc,
+						  QDF_ACTIVE_LIST_TIMEOUT);
 		break;
 	default:
 		sme_debug("unknown reason code");