diff --git a/drivers/staging/prima/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c b/drivers/staging/prima/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c index 44c4cce9cf2..3d01f16aaa3 100644 --- a/drivers/staging/prima/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c +++ b/drivers/staging/prima/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c @@ -1501,7 +1501,7 @@ error: \param pMac \param *pStaDs - Station DPH hash entry \param psessionEntry - PE session entry -\return None +\return tSirRetStatus * ?????? How do I get * - subtype =====> psessionEntry->parsedAssocReq.reassocRequest @@ -1511,7 +1511,7 @@ error: * - pHdr->seqControl =====> no longer needed * - pStaDs ------------------------------------------------------------------*/ -void limSendMlmAssocInd(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession psessionEntry) +tSirRetStatus limSendMlmAssocInd(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession psessionEntry) { tpLimMlmAssocInd pMlmAssocInd = NULL; tpLimMlmReassocInd pMlmReassocInd; @@ -1550,7 +1550,7 @@ void limSendMlmAssocInd(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession p { limReleasePeerIdx(pMac, pStaDs->assocId, psessionEntry); limLog(pMac, LOGP, FL("AllocateMemory failed for pMlmAssocInd")); - return; + return eSIR_MEM_ALLOC_FAILED; } vos_mem_set(pMlmAssocInd, temp ,0); @@ -1603,7 +1603,7 @@ void limSendMlmAssocInd(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession p PELOGE(limLog(pMac, LOGE, FL("rsnIEdata index out of bounds %d"), pMlmAssocInd->rsnIE.length);) vos_mem_free(pMlmAssocInd); - return; + return eSIR_FAILURE; } pMlmAssocInd->rsnIE.rsnIEdata[pMlmAssocInd->rsnIE.length] = SIR_MAC_WPA_EID; pMlmAssocInd->rsnIE.rsnIEdata[pMlmAssocInd->rsnIE.length + 1] = pAssocReq->wpa.length; @@ -1674,7 +1674,7 @@ void limSendMlmAssocInd(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession p limLog(pMac, LOGP, FL("call to AllocateMemory failed for " "pMlmReassocInd")); limReleasePeerIdx(pMac, pStaDs->assocId, psessionEntry); - return; + return eSIR_MEM_ALLOC_FAILED; } vos_mem_set(pMlmReassocInd, temp, 0); @@ -1798,6 +1798,6 @@ void limSendMlmAssocInd(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession p vos_mem_free(pMlmReassocInd); } - return; + return eSIR_SUCCESS; } /*** end limSendMlmAssocInd() ***/ diff --git a/drivers/staging/prima/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c b/drivers/staging/prima/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c index e5c2305651b..6c1a4035af8 100644 --- a/drivers/staging/prima/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c +++ b/drivers/staging/prima/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c @@ -2518,7 +2518,13 @@ void limProcessBtAmpApMlmAddStaRsp( tpAniSirGlobal pMac, tpSirMsgQ limMsgQ,tpPES * 2) PE receives eWNI_SME_ASSOC_CNF from SME * 3) BTAMP-AP sends Re/Association Response to BTAMP-STA */ - limSendMlmAssocInd(pMac, pStaDs, psessionEntry); + if (eSIR_SUCCESS != limSendMlmAssocInd(pMac, pStaDs, psessionEntry)) + limRejectAssociation(pMac, pStaDs->staAddr, + pStaDs->mlmStaContext.subType, + true, pStaDs->mlmStaContext.authType, + pStaDs->assocId, true, + (tSirResultCodes) eSIR_MAC_UNSPEC_FAILURE_STATUS, + psessionEntry); // fall though to reclaim the original Add STA Response message end: if( 0 != limMsgQ->bodyptr ) diff --git a/drivers/staging/prima/CORE/MAC/src/pe/lim/limTypes.h b/drivers/staging/prima/CORE/MAC/src/pe/lim/limTypes.h index 1ad20b5c423..a88ee43b9be 100644 --- a/drivers/staging/prima/CORE/MAC/src/pe/lim/limTypes.h +++ b/drivers/staging/prima/CORE/MAC/src/pe/lim/limTypes.h @@ -664,7 +664,7 @@ tSirRetStatus limProcessAuthFrameNoSession(tpAniSirGlobal pMac, tANI_U8 *, void #endif void limProcessAssocReqFrame(tpAniSirGlobal, tANI_U8 *, tANI_U8, tpPESession); -void limSendMlmAssocInd(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession psessionEntry); +tSirRetStatus limSendMlmAssocInd(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession psessionEntry); void limProcessAssocRspFrame(tpAniSirGlobal, tANI_U8 *, tANI_U8,tpPESession);