瀏覽代碼

qcacmn: Fix to avoid using mutex lock after holding spin lock

Avoid using mutex lock after holding spin lock, use spin lock
for the required calls only and not for set and clear MLO
VDEV which uses mutex if WLAN_MLO_USE_SPINLOCK is not
defined.

Change-Id: I9b989aa6a965107bff642e9d1e1009e57e7dddc2
CRs-Fixed: 3204328
Abhishek Singh 3 年之前
父節點
當前提交
5076250707
共有 1 個文件被更改,包括 4 次插入2 次删除
  1. 4 2
      umac/mlme/connection_mgr/core/src/wlan_cm_connect.c

+ 4 - 2
umac/mlme/connection_mgr/core/src/wlan_cm_connect.c

@@ -470,14 +470,16 @@ static void cm_update_vdev_mlme_macaddr(struct cnx_mgr *cm_ctx,
 	if (wlan_vdev_mlme_get_opmode(cm_ctx->vdev) != QDF_STA_MODE)
 		return;
 
-	wlan_vdev_obj_lock(cm_ctx->vdev);
 	if (req->cur_candidate->entry->ie_list.multi_link) {
+		wlan_vdev_obj_lock(cm_ctx->vdev);
 		/* Use link address for ML connection */
 		wlan_vdev_mlme_set_macaddr(cm_ctx->vdev,
 					   cm_ctx->vdev->vdev_mlme.linkaddr);
+		wlan_vdev_obj_unlock(cm_ctx->vdev);
 		wlan_vdev_mlme_set_mlo_vdev(cm_ctx->vdev);
 		mlme_debug("set link address for ML connection");
 	} else {
+		wlan_vdev_obj_lock(cm_ctx->vdev);
 		/* Use net_dev address for non-ML connection */
 		mac = (struct qdf_mac_addr *)cm_ctx->vdev->vdev_mlme.mldaddr;
 		if (!qdf_is_macaddr_zero(mac)) {
@@ -485,11 +487,11 @@ static void cm_update_vdev_mlme_macaddr(struct cnx_mgr *cm_ctx,
 			mlme_debug(QDF_MAC_ADDR_FMT " for non-ML connection",
 				   QDF_MAC_ADDR_REF(mac->bytes));
 		}
+		wlan_vdev_obj_unlock(cm_ctx->vdev);
 
 		wlan_vdev_mlme_clear_mlo_vdev(cm_ctx->vdev);
 		mlme_debug("clear MLO cap for non-ML connection");
 	}
-	wlan_vdev_obj_unlock(cm_ctx->vdev);
 }
 #else
 static inline