summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhishek Singh <absingh@qti.qualcomm.com>2015-08-19 14:48:28 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-09-10 14:57:40 +0530
commite7c4b047e6796f207fbdbe41c98f01f23bbacd03 (patch)
tree515d03f81dbb965ef51b4f554f10b0ceb6b318e5
parent832d026d31d3f40fb914c69a75e1403f95a7d63d (diff)
qcacld-2.0:IBSS:Update HT secondary channel offset from beacon in pStaDs
pronto to qcacld-2.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
-rw-r--r--CORE/MAC/src/pe/lim/limIbssPeerMgmt.c7
-rw-r--r--CORE/MAC/src/pe/sch/schBeaconProcess.c5
2 files changed, 8 insertions, 4 deletions
diff --git a/CORE/MAC/src/pe/lim/limIbssPeerMgmt.c b/CORE/MAC/src/pe/lim/limIbssPeerMgmt.c
index effe468aabf1..839783c90027 100644
--- a/CORE/MAC/src/pe/lim/limIbssPeerMgmt.c
+++ b/CORE/MAC/src/pe/lim/limIbssPeerMgmt.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -263,7 +263,10 @@ ibss_sta_caps_update(
if (pPeerNode->htCapable)
{
pStaDs->htGreenfield = pPeerNode->htGreenfield;
- pStaDs->htSupportedChannelWidthSet = pPeerNode->htSupportedChannelWidthSet;
+ pStaDs->htSupportedChannelWidthSet =
+ pPeerNode->htSupportedChannelWidthSet;
+ pStaDs->htSecondaryChannelOffset =
+ pPeerNode->htSecondaryChannelOffset;
pStaDs->htMIMOPSState = pPeerNode->htMIMOPSState;
pStaDs->htMaxAmsduLength = pPeerNode->htMaxAmsduLength;
pStaDs->htAMpduDensity = pPeerNode->htAMpduDensity;
diff --git a/CORE/MAC/src/pe/sch/schBeaconProcess.c b/CORE/MAC/src/pe/sch/schBeaconProcess.c
index beaaffb85cbf..5c34eaa54a7b 100644
--- a/CORE/MAC/src/pe/sch/schBeaconProcess.c
+++ b/CORE/MAC/src/pe/sch/schBeaconProcess.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -484,7 +484,8 @@ static void __schBeaconProcessForSession( tpAniSirGlobal pMac,
// check for VHT capability
pStaDs = dphLookupHashEntry(pMac, pMh->sa, &aid,
&psessionEntry->dph.dphHashTable);
- if (NULL != pStaDs && WNI_CFG_CHANNEL_BONDING_MODE_DISABLE != cbMode)
+ if (NULL != pStaDs && (HAL_STA_INVALID_IDX != pStaDs->staIndex ) &&
+ (WNI_CFG_CHANNEL_BONDING_MODE_DISABLE != cbMode))
{
if (psessionEntry->vhtCapability && pBeacon->OperatingMode.present )
{