diff options
| author | Sridhar Selvaraj <sselvara@codeaurora.org> | 2017-07-17 18:43:55 +0530 |
|---|---|---|
| committer | Yeshwanth Sriram Guntuka <ysriramg@codeaurora.org> | 2017-11-21 18:04:21 +0530 |
| commit | db50a0bb2e83fc28b7b52d655f11b9bbe51c692e (patch) | |
| tree | 4d8acaa34eefe66b41987808f0667677fa606fb5 | |
| parent | 934effe503aa7fd4b13913aef286570be46f5041 (diff) | |
qcacld-2.0: Keep bssDescription at the end of tSirSmeJoinReq struct
qcacld-3.0 to qcacld-2.0 propagation
Move bssDescription to the end of tSirSmeJoinReq since bssDescription
has ieFields at its end which would be corrupted if we dont keep it
at the end of bssDescription. This results in not detecting the IE's
properly after assoc response processing, not setting wpa_rsn flag
in PEER_ASSOC_CMD to fw. The subsequent LFR3 roam if happens in fw
fails because of this.
Keep bssDescription at the end of tSirSmeJoinReq struct and other
structs where bssDescription is used.
Change-Id: I7096f7da0a475b0c63078f3c77fba240a41dfb00
CRs-Fixed: 2147063
| -rw-r--r-- | CORE/MAC/inc/sirApi.h | 5 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/include/limGlobal.h | 7 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limTypes.h | 7 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrInsideApi.h | 11 |
4 files changed, 23 insertions, 7 deletions
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h index 14046cb8f9ac..6af44f5540b3 100644 --- a/CORE/MAC/inc/sirApi.h +++ b/CORE/MAC/inc/sirApi.h @@ -1209,6 +1209,11 @@ typedef struct sSirSmeJoinReq struct cds_fils_connection_info fils_con_info; #endif tSirBssDescription bssDescription; + /* + * WARNING: Pls make bssDescription as last variable in struct + * tSirSmeJoinReq as it has ieFields followed after this bss + * description. Adding a variable after this corrupts the ieFields + */ } tSirSmeJoinReq, *tpSirSmeJoinReq; /* Definition for response message to previously issued join request */ diff --git a/CORE/MAC/src/pe/include/limGlobal.h b/CORE/MAC/src/pe/include/limGlobal.h index af331a415f43..5adc4f15bc00 100644 --- a/CORE/MAC/src/pe/include/limGlobal.h +++ b/CORE/MAC/src/pe/include/limGlobal.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -261,6 +261,11 @@ typedef struct sLimMlmJoinReq tSirMacRateSet operationalRateSet; tANI_U8 sessionId; tSirBssDescription bssDescription; + /* + * WARNING: Pls make bssDescription as last variable in struct + * tLimMlmJoinReq as it has ieFields followed after this bss + * description. Adding a variable after this corrupts the ieFields + */ } tLimMlmJoinReq, *tpLimMlmJoinReq; typedef struct sLimMlmScanReq diff --git a/CORE/MAC/src/pe/lim/limTypes.h b/CORE/MAC/src/pe/lim/limTypes.h index 6b5910ccf790..f46dd6c09904 100644 --- a/CORE/MAC/src/pe/lim/limTypes.h +++ b/CORE/MAC/src/pe/lim/limTypes.h @@ -199,8 +199,13 @@ typedef struct sLimMlmScanCnf { tSirResultCodes resultCode; tANI_U16 scanResultLength; - tSirBssDescription bssDescription[1]; tANI_U8 sessionId; + tSirBssDescription bssDescription[1]; + /* + * WARNING: Pls make bssDescription as last variable in struct + * tLimMlmScanCnf as it has ieFields followed after this bss + * description. Adding a variable after this corrupts the ieFields + */ } tLimMlmScanCnf, *tpLimMlmScanCnf; typedef struct sLimScanResult diff --git a/CORE/SME/src/csr/csrInsideApi.h b/CORE/SME/src/csr/csrInsideApi.h index d5279dd7e4f1..06e9ab886345 100644 --- a/CORE/SME/src/csr/csrInsideApi.h +++ b/CORE/SME/src/csr/csrInsideApi.h @@ -178,16 +178,17 @@ typedef struct tagCsrScanResult we have equal preferValue */ tANI_U32 capValue; - /* - * This member must be the last in the structure because the end of - * tSirBssDescription (inside) is an array with non known size at this time - */ - eCsrEncryptionType ucEncryptionType; //Preferred Encryption type that matched with profile. eCsrEncryptionType mcEncryptionType; eCsrAuthType authType; //Preferred auth type that matched with the profile. tCsrScanResultInfo Result; + /* + * WARNING - Do not add any element here + * This member Result must be the last in the structure because the end + * of tSirBssDescription (inside) is an array with nonknown size at + * this time. + */ }tCsrScanResult; typedef struct |
