diff options
| author | Xiaochang Duan <xduan@qca.qualcomm.com> | 2014-01-17 11:05:46 -0800 |
|---|---|---|
| committer | Prakash Dhavali <pdhavali@qca.qualcomm.com> | 2014-02-04 00:02:44 -0800 |
| commit | 69f1cdc9fe123bf79a78bae2cdff0dad1de32e48 (patch) | |
| tree | 6620bfe2aef8625372631380eb627ebac29833ee | |
| parent | 0696af09d561e11c9dd36390d35b27f8575d0aab (diff) | |
wlan: fix "invalid STA id" when ROME IBSS reaches peer number capacity
In IBSS mode on Rome, occasionally "invalid STA id" error was seen when
the number of connected peers gets close to the maximum supported peer
number. The error was caused by invalid assoc ID generated out of the
valid boundary and was fixed here.
Also when a peer leaves IBSS, DEL_STA_RSP was sent to LIM, while it
did not expects the response. In fact LIM clearly indicates this in
the DEL_STA request sent to WMA. This is fixed by adding condition
check to prevent the unnecessary response transmission from happening.
Change-Id: Ic5cb1592e48f6ffbc656575bcb5e551c0a2d4ced
CRs-Fixed: 598420
| -rw-r--r-- | CORE/MAC/src/pe/lim/limAIDmgmt.c | 8 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 8 |
2 files changed, 13 insertions, 3 deletions
diff --git a/CORE/MAC/src/pe/lim/limAIDmgmt.c b/CORE/MAC/src/pe/lim/limAIDmgmt.c index aa1e55e05e83..814df1dee01e 100644 --- a/CORE/MAC/src/pe/lim/limAIDmgmt.c +++ b/CORE/MAC/src/pe/lim/limAIDmgmt.c @@ -86,6 +86,14 @@ limInitPeerIdxpool(tpAniSirGlobal pMac,tpPESession pSessionEntry) } else #endif +#ifdef QCA_IBSS_SUPPORT + if (pSessionEntry->limSystemRole == eLIM_STA_IN_IBSS_ROLE) + { + pSessionEntry->freePeerIdxHead=LIM_START_PEER_IDX; + maxAssocSta = pMac->lim.gLimIbssStaLimit; + } + else +#endif { pSessionEntry->freePeerIdxHead=LIM_START_PEER_IDX; } diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 8566540fc311..7e3fc61298b5 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -8969,9 +8969,11 @@ static void wma_delete_sta_req_ap_mode(tp_wma_handle wma, del_sta->status = VOS_STATUS_SUCCESS; send_del_rsp: - WMA_LOGD("%s: Sending del rsp to umac (status: %d)\n", - __func__, del_sta->status); - wma_send_msg(wma, WDA_DELETE_STA_RSP, (void *)del_sta, 0); + if (del_sta->respReqd) { + WMA_LOGD("%s: Sending del rsp to umac (status: %d)\n", + __func__, del_sta->status); + wma_send_msg(wma, WDA_DELETE_STA_RSP, (void *)del_sta, 0); + } } #ifdef FEATURE_WLAN_TDLS |
