qcacld-3.0: Fix peer addition/removal API calls
Call object manager peer create API when NDP peer is create.
For peer delete, object manager API is called by deregister
sta API.
Change-Id: If84c9847d53b5563eea13646f669a6e8b7fd166d
CRs-Fixed: 2137426
diff --git a/core/hdd/src/wlan_hdd_nan_datapath.c b/core/hdd/src/wlan_hdd_nan_datapath.c
index e97d2c9..5649304 100644
--- a/core/hdd/src/wlan_hdd_nan_datapath.c
+++ b/core/hdd/src/wlan_hdd_nan_datapath.c
@@ -2308,6 +2308,11 @@
hdd_roam_register_sta(adapter, &roam_info,
sta_ctx->broadcast_staid,
&bc_mac_addr, &tmp_bss_descp);
+ if (hdd_objmgr_add_peer_object(adapter->hdd_vdev,
+ QDF_NDI_MODE, bc_mac_addr.bytes, false))
+ hdd_err("Peer object "MAC_ADDRESS_STR" add fails!",
+ MAC_ADDR_ARRAY(bc_mac_addr.bytes));
+
hdd_ctx->sta_to_adapter[sta_ctx->broadcast_staid] = adapter;
}
@@ -2323,6 +2328,12 @@
{
struct hdd_context *hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD);
struct hdd_adapter *adapter = hdd_get_adapter_by_vdev(hdd_ctx, vdev_id);
+ struct hdd_station_ctx *sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter);
+
+ hdd_ctx->sta_to_adapter[sta_ctx->broadcast_staid] = NULL;
+ hdd_roam_deregister_sta(adapter, sta_ctx->broadcast_staid);
+ hdd_delete_peer(sta_ctx, sta_ctx->broadcast_staid);
+ sta_ctx->broadcast_staid = HDD_WLAN_INVALID_STA_ID;
wlan_hdd_netif_queue_control(adapter,
WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER,
@@ -2371,6 +2382,10 @@
/* this function is called for each new peer */
hdd_roam_register_sta(adapter, &roam_info, sta_id,
peer_mac_addr, &tmp_bss_descp);
+ if (hdd_objmgr_add_peer_object(adapter->hdd_vdev,
+ QDF_NDI_MODE, peer_mac_addr->bytes, false))
+ hdd_err("Peer object "MAC_ADDRESS_STR" add fails!",
+ MAC_ADDR_ARRAY(peer_mac_addr->bytes));
hdd_ctx->sta_to_adapter[sta_id] = adapter;
/* perform following steps for first new peer ind */
if (fist_peer) {