qcacld-3.0: Handle Reassociation request failure

qcacld-2.0 to qcacld-3.0 propagation

If pre-authentication is successful and the reassoc request
comes with an invalid BSSID, then clean up the PE session and
then clean up the upper layers like SME and HDD.

CRs-Fixed: 970551
Change-Id: Idb0ce24f4cb4e1f3dd02c3691e1698441b7606ce
diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
index 1d545e5..2343bdd 100644
--- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c
+++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
@@ -2101,11 +2101,21 @@
 			reassoc_req->bssDescription.bssId,
 			&session_id);
 	if (session_entry == NULL) {
-		lim_print_mac_addr(mac_ctx, reassoc_req->bssDescription.bssId,
-				LOGE);
 		lim_log(mac_ctx, LOGE,
 			FL("Session does not exist for given bssId"));
+		lim_print_mac_addr(mac_ctx, reassoc_req->bssDescription.bssId,
+				LOGE);
 		ret_code = eSIR_SME_INVALID_PARAMETERS;
+		lim_get_session_info(mac_ctx, (uint8_t *)msg_buf,
+				&sme_session_id, &transaction_id);
+		session_entry =
+			pe_find_session_by_sme_session_id(mac_ctx,
+					sme_session_id);
+		if (session_entry != NULL)
+			lim_handle_sme_join_result(mac_ctx,
+					eSIR_SME_INVALID_PARAMETERS,
+					eSIR_MAC_UNSPEC_FAILURE_STATUS,
+					session_entry);
 		goto end;
 	}
 #ifdef FEATURE_WLAN_DIAG_SUPPORT /* FEATURE_WLAN_DIAG_SUPPORT */