|
@@ -471,7 +471,10 @@ static void cm_update_vdev_mlme_macaddr(struct cnx_mgr *cm_ctx,
|
|
if (!eht_capab)
|
|
if (!eht_capab)
|
|
return;
|
|
return;
|
|
|
|
|
|
- if (req->cur_candidate->entry->ie_list.multi_link_bv) {
|
|
|
|
|
|
+ mac = (struct qdf_mac_addr *)wlan_vdev_mlme_get_mldaddr(cm_ctx->vdev);
|
|
|
|
+
|
|
|
|
+ if (req->cur_candidate->entry->ie_list.multi_link_bv &&
|
|
|
|
+ !qdf_is_macaddr_zero(mac)) {
|
|
wlan_vdev_obj_lock(cm_ctx->vdev);
|
|
wlan_vdev_obj_lock(cm_ctx->vdev);
|
|
/* Use link address for ML connection */
|
|
/* Use link address for ML connection */
|
|
wlan_vdev_mlme_set_macaddr(cm_ctx->vdev,
|
|
wlan_vdev_mlme_set_macaddr(cm_ctx->vdev,
|
|
@@ -480,15 +483,14 @@ static void cm_update_vdev_mlme_macaddr(struct cnx_mgr *cm_ctx,
|
|
wlan_vdev_mlme_set_mlo_vdev(cm_ctx->vdev);
|
|
wlan_vdev_mlme_set_mlo_vdev(cm_ctx->vdev);
|
|
mlme_debug("set link address for ML connection");
|
|
mlme_debug("set link address for ML connection");
|
|
} else {
|
|
} else {
|
|
- wlan_vdev_obj_lock(cm_ctx->vdev);
|
|
|
|
/* Use net_dev address for non-ML connection */
|
|
/* 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)) {
|
|
if (!qdf_is_macaddr_zero(mac)) {
|
|
|
|
+ wlan_vdev_obj_lock(cm_ctx->vdev);
|
|
wlan_vdev_mlme_set_macaddr(cm_ctx->vdev, mac->bytes);
|
|
wlan_vdev_mlme_set_macaddr(cm_ctx->vdev, mac->bytes);
|
|
|
|
+ wlan_vdev_obj_unlock(cm_ctx->vdev);
|
|
mlme_debug(QDF_MAC_ADDR_FMT " for non-ML connection",
|
|
mlme_debug(QDF_MAC_ADDR_FMT " for non-ML connection",
|
|
QDF_MAC_ADDR_REF(mac->bytes));
|
|
QDF_MAC_ADDR_REF(mac->bytes));
|
|
}
|
|
}
|
|
- wlan_vdev_obj_unlock(cm_ctx->vdev);
|
|
|
|
|
|
|
|
wlan_vdev_mlme_clear_mlo_vdev(cm_ctx->vdev);
|
|
wlan_vdev_mlme_clear_mlo_vdev(cm_ctx->vdev);
|
|
mlme_debug("clear MLO cap for non-ML connection");
|
|
mlme_debug("clear MLO cap for non-ML connection");
|