diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index 9078975e943d..505bb39b9608 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -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); diff --git a/core/hdd/src/wlan_hdd_object_manager.c b/core/hdd/src/wlan_hdd_object_manager.c index 5af1d26f17fe..b26054a8a980 100644 --- a/core/hdd/src/wlan_hdd_object_manager.c +++ b/core/hdd/src/wlan_hdd_object_manager.c @@ -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;