소스 검색

qcacld-3.0:IBSS:Update HT secondary channel offset from beacon in pStaDs

qcacld-2.0 to qcacld-3.0 propagation

While adding pStaDs for IBSS when peer beacon is received, HT
secondary channel offset is not copied from beacon. This leads to
false change capability indication while processing the same beacon
and thus update cb mode is sent with staid 255(default),
leading to crash.

Update HT secondary channel offset from beacon and add a check in
cbmode update to ignore update if staid is 255.

CRs-Fixed: 885747
Change-Id: I66dedb38aadde473b99b2f8fc4a7a9b855a10b2a
Abhishek Singh 9 년 전
부모
커밋
77ec98c2f9
2개의 변경된 파일5개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 0
      core/mac/src/pe/lim/lim_ibss_peer_mgmt.c
  2. 3 1
      core/mac/src/pe/sch/sch_beacon_process.c

+ 2 - 0
core/mac/src/pe/lim/lim_ibss_peer_mgmt.c

@@ -246,6 +246,8 @@ ibss_sta_caps_update(tpAniSirGlobal pMac,
 			pStaDs->htGreenfield = pPeerNode->htGreenfield;
 			pStaDs->htSupportedChannelWidthSet =
 				pPeerNode->htSupportedChannelWidthSet;
+			pStaDs->htSecondaryChannelOffset =
+				pPeerNode->htSecondaryChannelOffset;
 			pStaDs->htMIMOPSState = pPeerNode->htMIMOPSState;
 			pStaDs->htMaxAmsduLength = pPeerNode->htMaxAmsduLength;
 			pStaDs->htAMpduDensity = pPeerNode->htAMpduDensity;

+ 3 - 1
core/mac/src/pe/sch/sch_beacon_process.c

@@ -538,7 +538,9 @@ sch_bcn_process_sta_bt_amp_sta_ibss(tpAniSirGlobal mac_ctx,
 	pStaDs = dph_lookup_hash_entry(mac_ctx, pMh->sa, &aid,
 			&session->dph.dphHashTable);
 	if ((NULL == pStaDs) ||
-			(WNI_CFG_CHANNEL_BONDING_MODE_DISABLE == cb_mode))
+	  (WNI_CFG_CHANNEL_BONDING_MODE_DISABLE == cb_mode) ||
+	  ((NULL != pStaDs) &&
+	   (STA_INVALID_IDX == pStaDs->staIndex)))
 		return;
 
 	if (session->vhtCapability && bcn->OperatingMode.present) {