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
This commit is contained in:
Naveen Rawat 2017-11-16 16:52:08 -08:00 • committed by snandini
commit b7be1ed72c
2 changed files with 16 additions and 1 deletions

View file

@ -2308,6 +2308,11 @@ void hdd_ndi_drv_ndi_create_rsp_handler(uint8_t vdev_id,
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 @@ void hdd_ndi_drv_ndi_delete_rsp_handler(uint8_t vdev_id)
{
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 @@ int hdd_ndp_new_peer_handler(uint8_t vdev_id, uint16_t sta_id,
/* 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) {

View file

@ -15482,7 +15482,7 @@ QDF_STATUS sme_get_rcpi(tHalHandle hal, struct sme_rcpi_req *rcpi)
{
QDF_STATUS status = QDF_STATUS_E_FAILURE;
tpAniSirGlobal pMac = PMAC_STRUCT(hal);
struct scheduler_msg msg;
struct scheduler_msg msg = {0};
struct sme_rcpi_req *rcpi_req;
rcpi_req = qdf_mem_malloc(sizeof(*rcpi_req));