qcacld-3.0: Fix peer_mac addr for NDI in hdd_roam_deregister_sta

In function NDI peer is not considered leading to peer_mac address being
NULL and API failing for NDI peer. Fix the condition to include NDI
device mode and add handling of NDI vdev in hdd_objmgr_add_peer_object.

Change-Id: I34b467fdab4a92696d6377306a775f06fadfc1a9
CRs-Fixed: 2137423
This commit is contained in:
Naveen Rawat 2017-11-02 16:46:41 -07:00 • committed by snandini
commit 95eb4063a3
2 changed files with 8 additions and 1 deletions

View file

@ -1486,18 +1486,23 @@ QDF_STATUS hdd_roam_deregister_sta(struct hdd_adapter *adapter, uint8_t staid)
if (adapter->device_mode == QDF_STA_MODE) {
peer_mac = &sta_ctx->conn_info.bssId;
} else if (adapter->device_mode == QDF_IBSS_MODE) {
} else if (adapter->device_mode == QDF_IBSS_MODE ||
adapter->device_mode == QDF_NDI_MODE) {
if (sta_ctx->broadcast_staid == staid)
peer_mac = &broadcastMacAddr;
else
peer_mac =
hdd_wlan_get_ibss_mac_addr_from_staid(adapter, staid);
}
if (!peer_mac) {
hdd_err("Coudnt find peer MAC for staid %d, delete fails",
staid);
return QDF_STATUS_E_FAILURE;
}
hdd_debug("peer_mac_addr: "MAC_ADDRESS_STR,
MAC_ADDR_ARRAY(peer_mac->bytes));
ret = hdd_objmgr_remove_peer_object(adapter->hdd_vdev, peer_mac->bytes);
if (ret) {
hdd_err("Peer obj %pM delete fails", peer_mac);

View file

@ -278,6 +278,8 @@ int hdd_objmgr_add_peer_object(struct wlan_objmgr_vdev *vdev,
}
} else if (adapter_mode == QDF_IBSS_MODE) {
peer_type = WLAN_PEER_IBSS;
} else if (adapter_mode == QDF_NDI_MODE) {
peer_type = WLAN_PEER_NDP;
} else {
hdd_err("Unsupported device mode %d", adapter_mode);
return -EINVAL;