qcacld-3.0: Do not set the broadcast sta id to invalid

Currently, as part of ndi_delete broadcast sta id is set
to invalid. But set this sta id to invalid as part of
ndi delete response from FW.

Change-Id: I4df843c4bce1c06b5c62cfd932b681e3320e5341
CRs-Fixed: 2513607
This commit is contained in:
Bala Venkatesh
2019-08-21 19:54:04 +05:30
committed by nshrivas
parent faa3022c58
commit b184b77697
2 changed files with 8 additions and 5 deletions

View File

@@ -2087,7 +2087,12 @@ QDF_STATUS hdd_roam_register_sta(struct hdd_adapter *adapter,
/* Get the Station ID from the one saved during the association */ /* Get the Station ID from the one saved during the association */
txrx_desc.sta_id = sta_id; txrx_desc.sta_id = sta_id;
WLAN_ADDR_COPY(txrx_desc.peer_addr.bytes, roam_info->bssid.bytes); if (!QDF_IS_ADDR_BROADCAST(roam_info->bssid.bytes))
WLAN_ADDR_COPY(txrx_desc.peer_addr.bytes,
roam_info->bssid.bytes);
else
WLAN_ADDR_COPY(txrx_desc.peer_addr.bytes,
adapter->mac_addr.bytes);
/* set the QoS field appropriately */ /* set the QoS field appropriately */
if (hdd_wmm_is_active(adapter)) if (hdd_wmm_is_active(adapter))

View File

@@ -653,9 +653,6 @@ int hdd_ndi_delete(uint8_t vdev_id, char *iface_name, uint16_t transaction_id)
return -EINVAL; return -EINVAL;
} }
/* Since, the interface is being deleted, remove the broadcast id. */
sta_ctx->broadcast_sta_id = HDD_WLAN_INVALID_STA_ID;
os_if_nan_set_ndp_delete_transaction_id(adapter->vdev, os_if_nan_set_ndp_delete_transaction_id(adapter->vdev,
transaction_id); transaction_id);
os_if_nan_set_ndi_state(adapter->vdev, NAN_DATA_NDI_DELETING_STATE); os_if_nan_set_ndi_state(adapter->vdev, NAN_DATA_NDI_DELETING_STATE);
@@ -724,6 +721,7 @@ void hdd_ndi_drv_ndi_create_rsp_handler(uint8_t vdev_id,
sta_ctx->broadcast_sta_id = sta_id; sta_ctx->broadcast_sta_id = sta_id;
hdd_save_peer(sta_ctx, sta_id, &bc_mac_addr); hdd_save_peer(sta_ctx, sta_id, &bc_mac_addr);
qdf_copy_macaddr(&roam_info->bssid, &bc_mac_addr);
hdd_roam_register_sta(adapter, roam_info, sta_id, &tmp_bss_descp); hdd_roam_register_sta(adapter, roam_info, sta_id, &tmp_bss_descp);
qdf_mem_free(roam_info); qdf_mem_free(roam_info);
@@ -776,7 +774,7 @@ void hdd_ndi_drv_ndi_delete_rsp_handler(uint8_t vdev_id)
sta_id = sta_ctx->broadcast_sta_id; sta_id = sta_ctx->broadcast_sta_id;
if (sta_id < HDD_MAX_ADAPTERS) { if (sta_id < HDD_MAX_ADAPTERS) {
hdd_roam_deregister_sta(adapter, sta_ctx->requested_bssid); hdd_roam_deregister_sta(adapter, adapter->mac_addr);
hdd_delete_peer(sta_ctx, sta_id); hdd_delete_peer(sta_ctx, sta_id);
sta_ctx->broadcast_sta_id = HDD_WLAN_INVALID_STA_ID; sta_ctx->broadcast_sta_id = HDD_WLAN_INVALID_STA_ID;
} }