qcacmn: Add debug MLO changes
-Add debug logs to MLO manager code. -Add ml_dev validation checks for ML peer operations. -Add pointer checks to avoid NULL pointer dereference Change-Id: I8e9ddf177a999a43e8612f8c6acedd08ffce63d5 CRs-fixed: 2998964
This commit is contained in:

committed by
Madan Koyyalamudi

parent
df25501b83
commit
ce48d77998
@@ -360,6 +360,8 @@ QDF_STATUS wlan_mlo_mgr_vdev_created_notification(struct wlan_objmgr_vdev *vdev,
|
||||
/* It's not a ML interface*/
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
mlo_debug("MLD addr" QDF_MAC_ADDR_FMT,
|
||||
QDF_MAC_ADDR_REF(mld_addr->bytes));
|
||||
status = mlo_dev_ctx_init(vdev);
|
||||
|
||||
return status;
|
||||
@@ -376,6 +378,8 @@ QDF_STATUS wlan_mlo_mgr_vdev_destroyed_notification(struct wlan_objmgr_vdev *vde
|
||||
/* It's not a ML interface*/
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
mlo_debug("MLD addr" QDF_MAC_ADDR_FMT,
|
||||
QDF_MAC_ADDR_REF(mld_addr->bytes));
|
||||
|
||||
status = mlo_dev_ctx_deinit(vdev);
|
||||
|
||||
|
@@ -18,6 +18,7 @@
|
||||
#include "qdf_types.h"
|
||||
#include "wlan_cmn.h"
|
||||
#include "wlan_mlo_mgr_msgq.h"
|
||||
#include "wlan_objmgr_peer_obj.h"
|
||||
#include "wlan_mlo_mgr_peer.h"
|
||||
#include "wlan_mlo_mgr_ap.h"
|
||||
|
||||
@@ -188,7 +189,7 @@ void wlan_mlo_partner_peer_assoc_post(struct wlan_objmgr_peer *assoc_peer)
|
||||
link_peer = peer_entry->link_peer;
|
||||
|
||||
if (wlan_objmgr_peer_try_get_ref(link_peer, WLAN_MLO_MGR_ID) !=
|
||||
QDF_STATUS_SUCCESS)
|
||||
QDF_STATUS_SUCCESS)
|
||||
continue;
|
||||
|
||||
link_peers[i] = link_peer;
|
||||
@@ -273,8 +274,10 @@ void wlan_mlo_partner_peer_disconnect_notify(struct wlan_objmgr_peer *src_peer)
|
||||
for (i = 0; i < MAX_MLO_LINK_PEERS; i++) {
|
||||
link_peers[i] = NULL;
|
||||
peer_entry = &ml_peer->peer_list[i];
|
||||
if (!peer_entry->link_peer)
|
||||
if (!peer_entry->link_peer) {
|
||||
mlo_debug("link peer is null");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (peer_entry->link_peer == src_peer)
|
||||
continue;
|
||||
@@ -364,7 +367,7 @@ static QDF_STATUS mlo_peer_attach_link_peer(
|
||||
|
||||
peer_entry->link_ix = i + 1;
|
||||
peer_entry->hw_link_id = 1;
|
||||
/*wlan_peer_get_hw_link_id(link_peer)TODO*/
|
||||
/*wlan_peer_get_hw_link_id(link_peer)TODO*/
|
||||
mlo_peer_assign_primary_umac(ml_peer, peer_entry);
|
||||
|
||||
status = QDF_STATUS_SUCCESS;
|
||||
@@ -422,6 +425,18 @@ static QDF_STATUS mlo_dev_get_link_vdevs(
|
||||
struct wlan_objmgr_vdev *vdev_link;
|
||||
uint8_t link_id;
|
||||
|
||||
if (!ml_dev) {
|
||||
mlo_err("ml_dev is null");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
if (!ml_info) {
|
||||
mlo_err("ml_info is null");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
mlo_debug("num_partner_links %d", ml_info->num_partner_links);
|
||||
mlo_dev_lock_acquire(ml_dev);
|
||||
for (i = 0; i < ml_info->num_partner_links; i++) {
|
||||
link_id = ml_info->partner_link_info[i].link_id;
|
||||
vdev_link = mlo_get_vdev_by_link_id(vdev, link_id);
|
||||
@@ -441,6 +456,7 @@ static QDF_STATUS mlo_dev_get_link_vdevs(
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
}
|
||||
mlo_dev_lock_release(ml_dev);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
@@ -483,8 +499,10 @@ QDF_STATUS wlan_mlo_peer_create(struct wlan_objmgr_vdev *vdev,
|
||||
|
||||
for (i = 0; i < WLAN_UMAC_MLO_MAX_VDEVS; i++) {
|
||||
vdev_link = link_vdevs[i];
|
||||
if (!vdev_link)
|
||||
if (!vdev_link) {
|
||||
mlo_debug("vdev_link is null");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (wlan_vdev_is_peer_create_allowed(vdev_link)
|
||||
!= QDF_STATUS_SUCCESS) {
|
||||
|
Reference in New Issue
Block a user