Forráskód Böngészése

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 3 éve
szülő
commit
cd8f5cc201

+ 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");