Explorar o código

qcacmn: Alloc dp_mlo_ctxt only if its not allocated

Alloc dp_mlo_ctxt only if its not allocated, if dp_mlo_ctxt
is previously allocated reuse the same.

Change-Id: I666b3e6090afaa1ef4d20ff154c4b996a5eef51c
CRs-Fixed: 3510336
Surya Prakash Raajen %!s(int64=2) %!d(string=hai) anos
pai
achega
37b9ea37d4
Modificáronse 1 ficheiros con 9 adicións e 4 borrados
  1. 9 4
      umac/mlo_mgr/src/wlan_mlo_mgr_setup.c

+ 9 - 4
umac/mlo_mgr/src/wlan_mlo_mgr_setup.c

@@ -603,7 +603,7 @@ void mlo_setup_update_soc_ready(struct wlan_objmgr_psoc *psoc, uint8_t grp_id)
 	struct mlo_mgr_context *mlo_ctx = wlan_objmgr_get_mlo_ctx();
 	struct mlo_setup_info *setup_info;
 	uint8_t chip_idx, tot_socs;
-	struct cdp_mlo_ctxt *dp_mlo_ctxt;
+	struct cdp_mlo_ctxt *dp_mlo_ctxt = NULL;
 
 	if (!mlo_ctx)
 		return;
@@ -645,9 +645,14 @@ void mlo_setup_update_soc_ready(struct wlan_objmgr_psoc *psoc, uint8_t grp_id)
 	if (setup_info->num_soc != tot_socs)
 		return;
 
-	dp_mlo_ctxt = cdp_mlo_ctxt_attach(wlan_psoc_get_dp_handle(psoc),
-			(struct cdp_ctrl_mlo_mgr *)mlo_ctx);
-	wlan_objmgr_set_dp_mlo_ctx(dp_mlo_ctxt, grp_id);
+	dp_mlo_ctxt = wlan_objmgr_get_dp_mlo_ctx(grp_id);
+
+	if (!dp_mlo_ctxt) {
+		dp_mlo_ctxt = cdp_mlo_ctxt_attach(
+				wlan_psoc_get_dp_handle(psoc),
+				(struct cdp_ctrl_mlo_mgr *)mlo_ctx);
+		wlan_objmgr_set_dp_mlo_ctx(dp_mlo_ctxt, grp_id);
+	}
 
 	for (chip_idx = 0; chip_idx < tot_socs; chip_idx++) {
 		struct wlan_objmgr_psoc *tmp_soc =