mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-15 01:01:56 -04:00
qcacld-3.0: Drop duplicate Beacon Report request
Currently, driver does not check for duplication of rrm request. If driver receives any duplicate rrm request, then driver sends pilot frame for second rrm request which is not acceptable. Add changes to drop all duplicate rrm requests to fix this. Change-Id: I44a67a4119ae55ac94f5c9ecdb01032f6fd39c7c CRs-Fixed: 2195990
This commit is contained in:
parent
d528d19d10
commit
fcc22e0b94
3 changed files with 15 additions and 1 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2011-2012, 2014-2017 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2011-2012, 2014-2018 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -217,6 +217,7 @@ typedef struct sRrmPEContext {
|
|||
int8_t txMgmtPower;
|
||||
/* Dialog token for the request initiated from station. */
|
||||
uint8_t DialogToken;
|
||||
uint16_t prev_rrm_report_seq_num;
|
||||
tpRRMReq pCurrentReq;
|
||||
} tRrmPEContext, *tpRrmPEContext;
|
||||
|
||||
|
|
|
|||
|
|
@ -1298,6 +1298,7 @@ __lim_process_radio_measure_request(tpAniSirGlobal pMac, uint8_t *pRxPacketInfo,
|
|||
tDot11fRadioMeasurementRequest *frm;
|
||||
uint32_t frameLen, nStatus;
|
||||
uint8_t *pBody;
|
||||
uint16_t curr_seq_num;
|
||||
|
||||
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
||||
pBody = WMA_GET_RX_MPDU_DATA(pRxPacketInfo);
|
||||
|
|
@ -1307,6 +1308,17 @@ __lim_process_radio_measure_request(tpAniSirGlobal pMac, uint8_t *pRxPacketInfo,
|
|||
return;
|
||||
}
|
||||
|
||||
curr_seq_num = ((pHdr->seqControl.seqNumHi <<
|
||||
HIGH_SEQ_NUM_OFFSET) |
|
||||
pHdr->seqControl.seqNumLo);
|
||||
if (curr_seq_num == pMac->rrm.rrmPEContext.prev_rrm_report_seq_num &&
|
||||
pMac->rrm.rrmPEContext.pCurrentReq) {
|
||||
pe_err("rrm report req frame, seq num: %d is already in progress, drop it",
|
||||
curr_seq_num);
|
||||
return;
|
||||
}
|
||||
/* Save seq no of currently processing rrm report req frame */
|
||||
pMac->rrm.rrmPEContext.prev_rrm_report_seq_num = curr_seq_num;
|
||||
lim_send_sme_mgmt_frame_ind(pMac, pHdr->fc.subType, (uint8_t *)pHdr,
|
||||
frameLen + sizeof(tSirMacMgmtHdr), 0,
|
||||
WMA_GET_RX_CH(pRxPacketInfo), psessionEntry,
|
||||
|
|
|
|||
|
|
@ -1254,6 +1254,7 @@ tSirRetStatus rrm_initialize(tpAniSirGlobal pMac)
|
|||
pMac->rrm.rrmPEContext.DialogToken = 0;
|
||||
|
||||
pMac->rrm.rrmPEContext.rrmEnable = 0;
|
||||
pMac->rrm.rrmPEContext.prev_rrm_report_seq_num = 0xFFFF;
|
||||
|
||||
qdf_mem_set(pRRMCaps, sizeof(tRRMCaps), 0);
|
||||
pRRMCaps->LinkMeasurement = 1;
|
||||
|
|
|
|||
Loading…
Reference in a new issue