diff --git a/core/mac/inc/wni_api.h b/core/mac/inc/wni_api.h
index d263196..a714777 100644
--- a/core/mac/inc/wni_api.h
+++ b/core/mac/inc/wni_api.h
@@ -185,7 +185,6 @@
 	eWNI_SME_DFS_CSAIE_TX_COMPLETE_IND,     /* To indicate completion of CSA IE */
 	/* update in beacons/probe rsp */
 	eWNI_SME_STATS_EXT_EVENT,
-	eWNI_SME_LINK_SPEED_IND,        /* Indicate linkspeed response from WMA */
 	eWNI_SME_CSA_OFFLOAD_EVENT,
 	eWNI_SME_UPDATE_ADDITIONAL_IES, /* indicates Additional IE from hdd to PE */
 	eWNI_SME_MODIFY_ADDITIONAL_IES, /* To indicate IE modify from hdd to PE */
diff --git a/core/mac/src/sys/legacy/src/utils/src/mac_trace.c b/core/mac/src/sys/legacy/src/utils/src/mac_trace.c
index 8a7290d..e0c1423 100644
--- a/core/mac/src/sys/legacy/src/utils/src/mac_trace.c
+++ b/core/mac/src/sys/legacy/src/utils/src/mac_trace.c
@@ -321,7 +321,6 @@
 		CASE_RETURN_STRING(eWNI_SME_DFS_BEACON_CHAN_SW_IE_REQ);
 		CASE_RETURN_STRING(eWNI_SME_DFS_CSAIE_TX_COMPLETE_IND);
 		CASE_RETURN_STRING(eWNI_SME_STATS_EXT_EVENT);
-		CASE_RETURN_STRING(eWNI_SME_LINK_SPEED_IND);
 		CASE_RETURN_STRING(eWNI_SME_CSA_OFFLOAD_EVENT);
 		CASE_RETURN_STRING(eWNI_SME_UPDATE_ADDITIONAL_IES);
 		CASE_RETURN_STRING(eWNI_SME_MODIFY_ADDITIONAL_IES);
@@ -663,7 +662,6 @@
 		CASE_RETURN_STRING(WMA_DFS_BEACON_TX_SUCCESS_IND);
 		CASE_RETURN_STRING(WMA_DISASSOC_TX_COMP);
 		CASE_RETURN_STRING(WMA_DEAUTH_TX_COMP);
-		CASE_RETURN_STRING(WMA_GET_LINK_SPEED);
 		CASE_RETURN_STRING(WMA_MODEM_POWER_STATE_IND);
 #ifdef WLAN_FEATURE_STATS_EXT
 		CASE_RETURN_STRING(WMA_STATS_EXT_REQUEST);
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c
index 1f3911d..57821d0 100644
--- a/core/sme/src/common/sme_api.c
+++ b/core/sme/src/common/sme_api.c
@@ -2439,13 +2439,6 @@
 		}
 		break;
 #endif
-	case eWNI_SME_LINK_SPEED_IND:
-		if (pMac->sme.pLinkSpeedIndCb)
-			pMac->sme.pLinkSpeedIndCb(pMsg->bodyptr,
-						pMac->sme.pLinkSpeedCbContext);
-		if (pMsg->bodyptr)
-			qdf_mem_free(pMsg->bodyptr);
-		break;
 	case eWNI_SME_CSA_OFFLOAD_EVENT:
 		if (pMsg->bodyptr) {
 			csr_scan_flush_bss_entry(pMac, pMsg->bodyptr);
@@ -9791,7 +9784,7 @@
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 	tpAniSirGlobal pMac;
 	tSirLinkSpeedInfo *req;
-	struct scheduler_msg message = {0};
+	void *wma_handle;
 
 	if (!hHal || !pCallbackfn || !lsReq) {
 		QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
@@ -9799,6 +9792,13 @@
 		return QDF_STATUS_E_FAILURE;
 	}
 
+	wma_handle = cds_get_context(QDF_MODULE_ID_WMA);
+	if (!wma_handle) {
+		QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
+				"wma handle is NULL");
+		return QDF_STATUS_E_FAILURE;
+	}
+
 	pMac = PMAC_STRUCT(hHal);
 	req = qdf_mem_malloc(sizeof(*req));
 	if (!req) {
@@ -9816,16 +9816,8 @@
 
 	pMac->sme.pLinkSpeedCbContext = plsContext;
 	pMac->sme.pLinkSpeedIndCb = pCallbackfn;
-
-	/* serialize the req through MC thread */
-	message.bodyptr = req;
-	message.type = WMA_GET_LINK_SPEED;
-	status = scheduler_post_msg(QDF_MODULE_ID_WMA, &message);
+	status = wma_get_link_speed(wma_handle, req);
 	sme_release_global_lock(&pMac->sme);
-	if (!QDF_IS_STATUS_SUCCESS(status)) {
-		sme_err("%s: Post Link Speed msg fail", __func__);
-		qdf_mem_free(req);
-	}
 
 	return status;
 }
diff --git a/core/wma/inc/wma_api.h b/core/wma/inc/wma_api.h
index d18b622..23ddd79 100644
--- a/core/wma/inc/wma_api.h
+++ b/core/wma/inc/wma_api.h
@@ -140,6 +140,7 @@
 QDF_STATUS wma_set_peer_param(void *wma_ctx, uint8_t *peer_addr,
 		  uint32_t param_id,
 		  uint32_t param_value, uint32_t vdev_id);
+QDF_STATUS wma_get_link_speed(WMA_HANDLE handle, tSirLinkSpeedInfo *pLinkSpeed);
 #ifdef NOT_YET
 QDF_STATUS wma_update_channel_list(WMA_HANDLE handle, void *scan_chan_info);
 #endif
diff --git a/core/wma/inc/wma_internal.h b/core/wma/inc/wma_internal.h
index 541502b..cbb758d 100644
--- a/core/wma/inc/wma_internal.h
+++ b/core/wma/inc/wma_internal.h
@@ -892,8 +892,6 @@
 QDF_STATUS wma_process_dhcp_ind(tp_wma_handle wma_handle,
 				tAniDHCPInd *ta_dhcp_ind);
 
-QDF_STATUS wma_get_link_speed(WMA_HANDLE handle, tSirLinkSpeedInfo *pLinkSpeed);
-
 int wma_profile_data_report_event_handler(void *handle, uint8_t *event_buf,
 				       uint32_t len);
 
diff --git a/core/wma/inc/wma_types.h b/core/wma/inc/wma_types.h
index 78b4013..1190b73 100644
--- a/core/wma/inc/wma_types.h
+++ b/core/wma/inc/wma_types.h
@@ -378,7 +378,6 @@
 #define WMA_DFS_BEACON_TX_SUCCESS_IND   SIR_HAL_BEACON_TX_SUCCESS_IND
 #define WMA_DISASSOC_TX_COMP       SIR_HAL_DISASSOC_TX_COMP
 #define WMA_DEAUTH_TX_COMP         SIR_HAL_DEAUTH_TX_COMP
-#define WMA_GET_LINK_SPEED         SIR_HAL_GET_LINK_SPEED
 
 #define WMA_MODEM_POWER_STATE_IND SIR_HAL_MODEM_POWER_STATE_IND
 
diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c
index c3f7e1a..cba0adc 100644
--- a/core/wma/src/wma_main.c
+++ b/core/wma/src/wma_main.c
@@ -6653,10 +6653,6 @@
 					  (tDisableIntraBssFwd *) msg->bodyptr);
 		qdf_mem_free(msg->bodyptr);
 		break;
-	case WMA_GET_LINK_SPEED:
-		wma_get_link_speed(wma_handle, msg->bodyptr);
-		qdf_mem_free(msg->bodyptr);
-		break;
 	case WMA_MODEM_POWER_STATE_IND:
 		wma_notify_modem_power_state(wma_handle,
 				(tSirModemPowerStateInd *) msg->bodyptr);
diff --git a/core/wma/src/wma_utils.c b/core/wma/src/wma_utils.c
index a2c40b3..3b5130d 100644
--- a/core/wma/src/wma_utils.c
+++ b/core/wma/src/wma_utils.c
@@ -2784,24 +2784,28 @@
 QDF_STATUS wma_send_link_speed(uint32_t link_speed)
 {
 	QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
-	struct scheduler_msg sme_msg = { 0 };
-	tSirLinkSpeedInfo *ls_ind =
-		(tSirLinkSpeedInfo *) qdf_mem_malloc(sizeof(tSirLinkSpeedInfo));
+	tpAniSirGlobal mac_ctx;
+	tSirLinkSpeedInfo *ls_ind;
+
+	mac_ctx = cds_get_context(QDF_MODULE_ID_PE);
+	if (!mac_ctx) {
+		WMA_LOGD("%s: NULL pMac ptr. Exiting", __func__);
+		return QDF_STATUS_E_INVAL;
+	}
+
+	ls_ind = (tSirLinkSpeedInfo *)qdf_mem_malloc(sizeof(tSirLinkSpeedInfo));
 	if (!ls_ind) {
 		WMA_LOGE("%s: Memory allocation failed.", __func__);
 		qdf_status = QDF_STATUS_E_NOMEM;
 	} else {
 		ls_ind->estLinkSpeed = link_speed;
-		sme_msg.type = eWNI_SME_LINK_SPEED_IND;
-		sme_msg.bodyptr = ls_ind;
-		sme_msg.bodyval = 0;
+		if (mac_ctx->sme.pLinkSpeedIndCb)
+			mac_ctx->sme.pLinkSpeedIndCb(ls_ind,
+					mac_ctx->sme.pLinkSpeedCbContext);
+		else
+			WMA_LOGD("%s: pLinkSpeedIndCb is null", __func__);
+		qdf_mem_free(ls_ind);
 
-		qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg);
-		if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
-			WMA_LOGE("%s: Fail to post linkspeed ind  msg",
-				 __func__);
-			qdf_mem_free(ls_ind);
-		}
 	}
 	return qdf_status;
 }
