diff --git a/core/hdd/src/wlan_hdd_ioctl.c b/core/hdd/src/wlan_hdd_ioctl.c index 6745015e1a81e..fcc2f5e0e7b64 100644 --- a/core/hdd/src/wlan_hdd_ioctl.c +++ b/core/hdd/src/wlan_hdd_ioctl.c @@ -446,21 +446,24 @@ hdd_get_ibss_peer_info_cb(void *pUserData, pStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(adapter); if (NULL != pPeerInfo && QDF_STATUS_SUCCESS == pPeerInfo->status) { /* validate number of peers */ - if (pPeerInfo->numPeers < SIR_MAX_NUM_STA_IN_IBSS) { - pStaCtx->ibss_peer_info.status = pPeerInfo->status; - pStaCtx->ibss_peer_info.numPeers = pPeerInfo->numPeers; - - for (i = 0; i < pPeerInfo->numPeers; i++) { - pStaCtx->ibss_peer_info.peerInfoParams[i] = - pPeerInfo->peerInfoParams[i]; - } - hdd_info("Peer Info copied in HDD"); - } else { - hdd_info("Number of peers %d returned is more than limit %d", + if (pPeerInfo->numPeers > SIR_MAX_NUM_STA_IN_IBSS) { + hdd_warn("Limiting num_peers %u to %u", pPeerInfo->numPeers, SIR_MAX_NUM_STA_IN_IBSS); + pPeerInfo->numPeers = SIR_MAX_NUM_STA_IN_IBSS; } + pStaCtx->ibss_peer_info.status = pPeerInfo->status; + pStaCtx->ibss_peer_info.numPeers = pPeerInfo->numPeers; + + for (i = 0; i < pPeerInfo->numPeers; i++) + pStaCtx->ibss_peer_info.peerInfoParams[i] = + pPeerInfo->peerInfoParams[i]; } else { - hdd_info("peerInfo returned is NULL"); + hdd_err("peerInfo %s: status %u, numPeers %u", + pPeerInfo ? "valid" : "null", + pPeerInfo ? pPeerInfo->status : QDF_STATUS_E_FAILURE, + pPeerInfo ? pPeerInfo->numPeers : 0); + pStaCtx->ibss_peer_info.numPeers = 0; + pStaCtx->ibss_peer_info.status = QDF_STATUS_E_FAILURE; } complete(&adapter->ibss_peer_info_comp);