1) Do not dereference mac_ctx for logging when mac_ctx itself is NULL
2) Use standard logging mechanism such as the QDF infrastructure for
logging purpose
Change-Id: Iedb4b5d20fd7aa85ff1b98e5fab4edb9de51f7b2
CRs-Fixed: 1065301
When receiving a power save request from user space, disable any active
power save timer and start a new one using the timeout supplied from
user space.
Change-Id: I88299776a973118e1bdba8cfd5fa4c8018f0758a
CRs-Fixed: 1065234
As part of MBO(Multiband Operations), the Assoc IE's including
MBO IE need to be sent to FW as part of Roam Scan Offload command
so that these IE's can be used later in firmware initiated roams
Change-Id: Ia873c65a7813ae63d8e53d7445095990b0c2fed7
CRs-Fixed: 1039969
(cherry picked from commit 0af3520421400b65002604e0a3a9c7c714cc1e21)
qcacld-2.0 to qcacld-3.0 propagation
Due to race between user triggered disconnect and OTA disconnect,
On receiving OTA disconnect PE sends DISCONNECT_IND to SME and
waits for conformation from SME. By the time if SME already received
disconnect from user it will give PE DEAUTH_REQ instead of DIASSOC_CNF
messgae. Upon receiving this PE will do the clean up and will send
DEAUTH_RSP message. SME will also process DISASSOC_IND and will send
eSmeCommandWmStatusChange. But this will be in pending queue as user
triggered deauth is in progress as a SME active command. If this is processed
after user initiated disconnect command, HDD will get two disconnects which
cause mess up of eConnectionState_Disconnecting/eConnectionState_NotConnected
states in hdd disconnect handler.
Fix is to remove pending eSmeCommandWmStatusChange command after
DEAUTH_RSP from SME.
Git-commit: 7f0986129d00270d1b7bba3d671bba79ba323933
Change-Id: I004834785491ab7cf3e90371dfd1910c25d0bbef
CRs-Fixed: 1003374
(cherry picked from commit 2b4f56c8dcbc292391d705993c7cd874c3dea008)
qcacld-2.0 to qcacld-3.0 propagation
Kernel updates RSN IEs in BSS table only if it receives the Probe
response. Hence set fProbeRsp flag in BssDescriptor if PNO found
indication is due to probe response.
CRs-Fixed: 907635
Change-Id: I2bfee96c5a2abc6b0730c11e0c694ede81a69a21
(cherry picked from commit abb1af07e98ca6581186538a04a735b33e0ca66f)
(cherry picked from commit 5985919d63cb0e58920fc0022f0807ae36fa19fa)
qcacld-2.0 to qcacld-3.0 propagation
In earlier android builds PMF was not enabled by default in the supplicant
unlike the latest builds. So even if PMF is set as optional, driver was
mandating it. So if we try to roam to an AP which is not PMF capabale
driver would simply drop the connection.
To address this, allow non PMF connection if PMF is set as optional by the
supplicant and the AP is not capable.
CRs-Fixed: 1018482
Change-Id: Ideecb861dcc362f94a73b47d1a4766d621a38214
(cherry picked from commit ec4d9feff5461a575b2988b38428b89cf6337584)
(cherry picked from commit 54b657e08ac628616b8cf6cbddfb9204ecf28ce5)
qcacld-2.0 to qcacld-3.0 propagation
During P2P functionality, Host will send GO NEG REQ and
receives ACK completion from firmware which will be queued
to indicate HDD. Meanwhile if host receives GO-NEG RESP it
will be sent directly to HDD via function callback. In HDD as
we got GO NEG RESP before ACK completion for GO-NEG REQ, HDD
will generate pkt completion for GO NEG Request.
Now GO NEG CONFORMATION frame will be sent and driver will be
expecting completion for this. The GO NEG REQ ACK completion
which got buffered in PE will be delivered to Supplicant and
Supplicant assumes that this is the ACK for GO NEG CONF frame.
This causes early termination of remain on channel due to which
firmware may drop the GO NEG CONF frame and may not retry as ROC
is terminated.
Fix this by making ACK Completion indication to HDD via function
callback.
Git-commit: 32ddf4196f423b8eaea7ec6c0816e2961aa7fc45
Change-Id: I0dd3acb236b270839649d2becfdc007e7aae9fdd
CRs-Fixed: 1012547
(cherry picked from commit a3996d421de7f55d5a6f7da19d7ff4b568ce7c50)
(cherry picked from commit 42405db3bd3f4b10800cde8cdcd14f521461a5a7)
qcacld-2.0 to qcacld-3.0 propagation
In SME, while processing set beacon parameters, free
dynamically allocated memory, once done with the it.
Change-Id: I281ef5eb9492fe75d639b2bef7ed588aacee8e74
CRs-Fixed: 974567
(cherry picked from commit feaa49e6b906f33a98a11f5ee35c947abe5d28bd)
qcacld-2.0 to qcacld-3.0 propagation
In CCX, BSS description is sent as part of beacon report. If BSS
description has random values, it leads to CCX certification failure.
Fix this by resetting memory allocated with zero. Also, reset memory
allocated to send beacon report to avoid this issue.
Change-Id: I445942b64ca9f382f8d24ca19665d6bda2341a80
CRs-Fixed: 931441
(cherry picked from commit c7a96bbd498d6d096f1dcade7fce0f6c1732248e)
qcacld-2.0 to qcacld-3.0 propagation.
As there are a lot of prints dropped on the console in
short duration, it leads to interrupt disablement on
the cpu.
So reducing the logging level of log statement from
ERROR to INFO
Change-Id: I3eefac49378a7bfbcc235b1dd3362e1213fa1f42
CRs-Fixed: 886644
(cherry picked from commit 06c7d1b4aa89fb5c25241cec0558d559ee93b683)
qcacld-2.0 to qcacld-3.0 propagation
Change-id Iac45ffc1736eecc40e203174888e296767b50a0d and
Iced4b80de60f9640cad0342afac57f9a17c2a3e2 added new entries in between
the existing enum list. Due to this stability scripts decodes
them incorrectly.
To fix this, move new entries to the bottom of the enum list.
Change-Id: If0b759f58dd6831fad45ac3d321989a550fef405
CRs-Fixed: 954222
(cherry picked from commit 1f7fcef8e5190d0a1f75185bf874a4c1b36db26f)
qcacld-2.0 to qcacld-3.0 propagation
Some MTRACE logs returns 'unknown code' instead of code and data passed
to MTRACE. To resolve this unknown code issues in MTRACE logs,
add any missing MTRACE code enums in corresponding trace functions.
Both mac_trace_msg_tx() and mac_trace_msg_rx() were not handling
eWniMsgTypes enums, we don't have module Id for SME to handle
in those functions itself. So, modified mac_trace_msg_tx() to mac_trace().
Change-Id: Ia994c971178e24843f652b67336afeaec5e949ab
CRs-Fixed: 871983
(cherry picked from commit 5e12a6f7a67de546c8567341f35707da61cf00b8)
1) In function wma_update_hdd_cfg update tgt_cfg before calling hdd callback
function.
2) In function hdd_init_nan_data_mode correct check for status returned from
sme_open_session
Change-Id: Ibf86c348f95c6f5589c2089600dbe176b1fda5fe
CRs-Fixed: 962367
(cherry picked from commit c6e52d750fee0675efdbe08d7e6f0c274887cb65)
After completing NDP initiator and response between two NDP peers,
ping failure between the peers is observed due to mismatch in the
broadcast station id set in the driver and the broadcast MAC address
for the NDI. This sta id is eventually used as local id to fetch the
peer associated with the sta id and extract the vdev id from the peer
handler, which was pointing to the incorrect vdev leading to ping
packets drop in the firmware due to incorrect vdev id.
Assign the broadcast id for NDI same as the NDI self
peer's sta id, which will point to the correct vdev id.
Change-Id: I4a4eeae149a4347da236cb768cf41141d9efdaca
CRs-Fixed: 1059527
In function csr_roam_chk_lnk_disassoc_ind format
specifier to print sizeof() is for 64 bit systems
which leads in compilation error on 32 bit systems.
Fix this issue by common format specifier for both
32 and 64 bit compilation.
Change-Id: Ib3a5df243c8c29040321af4bdcf7230a6e5e0e52
CRs-Fixed: 1055344
Turn off opportunistic key caching (OKC) in firmware based on
"OkcEnabled" parameter in WCNSS_qcom_cfg.ini.
It is enabled by default and can be turned off with value 0.
Remove FEATURE_WLAN_OKC compilation option because OKC is always
compiled in for cld3.0. Remove underlying empty routine
cb_notify_set_okc_feature_enabled().
CRs-Fixed: 1057181
Change-Id: I174e860abef0532d62517635fe56927d8c3c9fd3
Country code comparison result is checked against true value,
but the comparison result is non-zero if the country code is
valid, hence checking the result against true fails and do
not set the country code.
Correct the conditional logic to check if the given country
valid or not.
Change-Id: Id893cfec8571939e4e455fa35ea95310f4c77263
CRs-Fixed: 1060242
qcacld-2.0 to qcacld-3.0 propagation
During WPS registration process the psession encryption type is 0.
Now if AP's beacon have RSN IE, while processing beacons security
mismatch is detected and DUT sends unicast probe request without
WPS IE.
To avoid this ignore security mismatch during WPS registration.
Change-Id: Ic1b4de116ec6a99749ec3d8ba28b29d52190c344
CRs-Fixed: 967553
qcacld-2.0 to qcacld-3.0 propagation
SoftAP should check gEnableVhtFor24GHzBand ini variable before
enabling vht mode in 2.4Ghz mode.
Added changes to turn off vht mode if gEnableVhtFor24GHzBand is
disabled for 2.4Ghz.
Change-Id: I135e5449f95342a98abfa0b9cd5b1849a84c5c4c
CRs-Fixed: 988240
qcacld-2.0 to qcacld-3.0 propagation
DUT sends continuous GO Negotiation Response for the request
while ROC is in progress. These frames increase timeout of
cancel ROC timer and ROC is not removed from the active timout.
This can cause ROC to be in active cmd list even after current
timeout value.
Add changes to return from active timeout handler in case of ROC.
Change-Id: I58577b5d2addf7614d8ee458df0ce4632dafa7c0
CRs-Fixed: 990808
qcacld-2.0 to qcacld-3.0 propagation
Currently few MTRACE logs are logged repetitively which leads to
overwriting of other important MTRACE logs.
To avoid this,
1. Remove MTRACE logs which are seen repetitively in scan,
connect/disconnect path and few timer functions.
2. Remove MTRACE log in lim_process_mlm_req_messages() and
lim_process_sme_req_messages() as few enums already logged in
lim_process_messages().
Add MTRACE log in lim_post_mlm_message() and lim_post_sme_message() for
the rest of enums which are not logged in lim_process_messages()
Change-Id: I1478f3e9ab8fb57d8b8b2f65cf2eb3450eb7b64c
CRs-Fixed: 855840
qcacld-2.0 to qcacld-3.0 propagation
MTRACE logs are not present in SME, for messages tx/rx WMA.
So add missing MTRACE logs in SME before transmitting and
after receiving messages to/from WMA.
Change-Id: Iac45ffc1736eecc40e203174888e296767b50a0d
CRs-Fixed: 855871
qcacld-2.0 to qcacld-3.0 propagation
Dereference of 'roamSession' pointer before NULL check in
sme_is_sta_smps_allowed().
Fix to move dereference statements after NULL check.
Change-Id: I04d72a4b8fbc4ba68850ae665e2248a386fa4c10
CRs-Fixed: 992082
In function csr_roam_chk_lnk_disassoc_ind frame size
exceeds 1024 bytes. Because of this compilation fails
on 32 bit systems as there is stack check flag on
32-bit compilation.
Fix is to convert stack allocations to dynamic memory
allocation.
Change-Id: I7c91bc0ed91796ba4dac9c85ea4b1b6f2d8a6ee5
CRs-Fixed: 1055344
In case of dense roam scenario, Host should set initial dense
status if roamable AP count is more than minimum dense AP count.
Current implementation checks for the number of channels in roam
cache list instead of AP count.
Add changes to set the flag if roamable AP count is more than
configured value.
Change-Id: I4d5f7c6c69b1a9a527aace1677050373065af213
CRs-Fixed: 1058211
qcacld-2.0 to qcacld-3.0 propagation
Currently RRM scan results are sent out to the requesting AP, but
are not updated to the kernel.
Update the results to the kernel so that it will be useful in future
in the userspace if a BTM request is received and the lookup of
scan cache can fetch a result for the target AP and an additional
scan can be avoided.
Git-commit: 3075ac910c015ce525bf8badd1eb4a277286b28f
Change-Id: Ie56b86e5c54910648cb2ae8bf2a7dac2ee873e00
CRs-Fixed: 1010596
qcacld-2.0 to qcacld-3.0 propagation
Currently all the scan requests going from the host to the
firmware pass a rest time to the firmware. The firmware
waits for the rest time before starting the scan. This is
not needed in the case of RRM beacon requests with single
channel request to make it more optimal.
Configure the rest times to minimum and start the scan
right after receiving the request
Git-commit: b0132824baeceb25bbc80d0e82ed6693b783b4dd
Change-Id: Ia5c5a1c2c765d13611b901742910325954ce3d8a
CRs-Fixed: 1010596
In following conditions RX LDPC support needs to be enabled
1) when STA is coming up in 5G band
2) when IBSS is coming up in 5G band
for anyother cases RX LDPC needs to be disabled. If user has
choosen RX LDPC to be disabled from INI file then it needs to
be disabled for all the cases including above mentioned cases.
To achieve this, take the intersection of global, INI, and harware
specific RX LDPC settings.
Change-Id: Iae10aa4a8c0931cdb796cd9c8ff558d4bc8e0aed
CRs-Fixed: 1050004
Host is sending OBSS start scan request twice to firmware.
OBSS scan start is triggered as part of the set context response
processing and it gets called twice after association.
Added condition check to allow only once the OBSS scan request.
Change-Id: I8ccc7172df9d89aaa09ad924ced7f8ed5a6ace13
CRs-Fixed: 1053626
qcacld-2.0 to qcacld-3.0 propagation
Currently, In SAP mode due to incorrect wep key
index broadcast frames are not encrypted.
Fix is to make sure to update default index for
BSS(group) key.
Change-Id: I328855decbad20dbd88b48022e466e4f78f5d722
CRs-Fixed: 932749
Sessionize VHT Capability by updating the session
entry at join request or start bss and read the same
capablities at LIM instead of reading from global VHT
CFG items.
Following CFG items are taken care as part of this change.
WNI_CFG_VHT_SU_BEAMFORMER_CAP,
WNI_CFG_VHT_SU_BEAMFORMEE_CAP,
WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED,
WNI_CFG_VHT_MU_BEAMFORMER_CAP,
WNI_CFG_VHT_MU_BEAMFORMEE_CAP
Change-Id: I7c33de1180416db0027b4690170060549847dd9a
CRs-Fixed: 1029145
Sessionize VHT Capability by updating the session
entry at join request or start bss and read the same
capablities at LIM instead of reading from global VHT
CFG items .
Change-Id: Idef009d4c76cfc6939359dc09379fc1f0d820589
CRs-Fixed: 1029145
Add support for 5/10 MHz channel width for STA and SAP role. To
enable/disable feature, following ini parameter will be used:
* gSub20ChannelWidth=0: indicates do not use Sub 20 MHz bandwidth
this is also the default value.
* gSub20ChannelWidth=1: Bring up SAP/STA in 5 MHz bandwidth
* gSub20ChannelWidth=2: Bring up SAP/STA in 10 MHz bandwidth
Change-Id: Ic6d534dc1eae60fcd2fb7533c934b9ea28e6dd78
CRs-Fixed: 1013211
qcacld-2.0 to qcacld-3.0 propagation
Add NAN API wrapper function definitions and also fix compilation
failure when NAN data path feature is disabled.
Change-Id: Ib4a3133568eee0c2257c65bb0a8905c44048f0c2
CRs-Fixed: 1049546
qcacld-2.0 to qcacld-3.0 propagation
Take action to delete peer in NDP_END Indication, rather than
NDP_END Response event from firmware. Earlier, device initiating
NDP_END will only get NDP_END_Response event from firmware, but
that behavior is changed now and both self and peer device will get
NDP_END_indication with peer map for ndp end.
Change-Id: I7316cc3864052eef4c7bbe9bbac01f0333909c59
CRs-Fixed: 962367
In current driver, there is already an API called cds_allow_concurrency
which is functionally similar to csr_isconcurrentsession_valid. Remove old
API csr_isconcurrentsession_valid to have single API.
Change-Id: If81900af5cb7291917fe915b44af5cf763f16d46
CRs-Fixed: 1047054
Remove the usage of typedef for oem data request and oem
data response data structure.
Change-Id: I94f05833baa9b6baaf2272f63a33236437a96bbf
CRs-Fixed: 1038872
Remove oem data rsp passing over multiple layers.
This change set sends the OEM data response directly to
SME from WMA instead of going through LIM/MLM.
Change-Id: I3cff10ff7bdbcee39b39bd9ba03b5eff8444b017
CRs-Fixed: 1038872
Remove oem data request passing over multiple layers.
This change set sends the OEM data request directly from
SME to WMA instead of going through LIM/MLM.
Change-Id: I151fa771544e9f74b1b69b18d689176752760621
CRs-Fixed: 1038872
qcacld-2.0 to qcacld-3.0 propagation
Fix uninitialized stack use in csrRoamReadTSF by initializing
variable of struct type tCsrNeighborRoamBSSInfo to zero.
Git-commit: d39cf92e69222e03f89238313f5b8c100ecd4ecc
Change-Id: I4211b41b5e30d414e45691a5bab4048587cc8499
CRs-Fixed: 1018486
qcacld-2.0 to qcacld-3.0 propagation
When STA process Neighbor report from AP, session_id is declared
as one byte variable and its overwritten with four bytes value
in csrRoamGetSessionIdFromBSSID. This is observed on enabling stack
protection in kernel config(CONFIG_CC_STACKPROTECTOR).
Fix is to declare session_id as four bytes variable.
Git-commit: 96646d1eb48c4f3bf45555b8f636f90cf925b8b8
Change-Id: I6b2fd40a5466fe5dd72d394abb682229a550e0b1
CRs-Fixed: 1025272
Propagation from qcacld-2.0 to qcacld-3.0
- Current length of bpf is not set during the reset filter. set offload
is allocated through malloc, so invalid values for current_length
are recieved during reset. Memset set_bpfload to zero after
allocation.
- update the bpf service to hdd correctly depending on the
wmi service bitmap recieved from the firmware.
Change-Id: Iaf4774865cf0698a2deebac5cea62c873146e838
CRs-Fixed: 985562
In function csr_update_lost_link1_cmd, memory is allocated to
local variable struct scan_filter, further we passing this
variable to csr_roam_prepare_filter_from_profile function and
allocating memory to the members of the scan_filter. At some
point in the function we are returning without freeing memory
allocated to scan_filter, which causes memory leak.
Make sure to free scan_filter’s memory before returning.
Change-Id: I448cf0d4bb16d4769b50c96495038684909e0739
CRs-Fixed: 1048116