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) {