Current host driver is using default pattern id 0 for various
WoW pattern configuration which is overwriting WoW rules in FW.
WoW pattern id should be unique for each vdev. Same WoW pattern
ID can be used on 2 different vdevs but on same vdev pattern id
for various WoW patterns must be unique. Add fix to make sure
unique pattern id is used for each vdev.
Change-Id: I893044ae50bee44b5e986f3c30967fad601eb057
CRs-Fixed: 1067951
roam_synch_in_progress is set by default in csr_roam_synch_callback function,
and will be reset only on SIR_ROAM_SYNCH_PROPAGATION roam op_code.
On roam_synch_in_progress set, no roam call back will be called and roam
command will not be removed from active list.
If roam_synch_in_progress is set on roam op_code other than SIR_ROAM_SYNCH_PROPAGATION,
roam_synch_in_progress will remain till next roam, till that time no roam commands will be
processed.
To fix this set roam_synch_in_progress only on SIR_ROAM_SYNCH_PROPAGATION roam op_code.
And also add log in csr_roam_set_bss_config_cfg if roam_synch_in_progress is set.
Change-Id: Id50e6f871280bd3eac9f61513db308ea748eec2d
CRs-Fixed: 1064213
In rx path replayed mcast packets are dropped and freed,
but debug node reference for dropped skb is not removed.
This is resulting in invalid tracking of allocated netbuf.
Remove debug node reference for dropped skb.
Change-Id: I1e36436dadaefb666c14af57c72876a70b887e88
CRs-Fixed: 1066770
qcacld-2.0 to qcacld-3.0 propagation
Fix the race condition, between 2 kernel worker threads
while shutdown is in progress.
Change-Id: I6e71ae55c57dac8c2adb36167783615e218cb481
CRs-Fixed: 834362
qcacld-2.0 to qcacld-3.0 propagation
SSR should wait until ndo hard_start_xmit ops is completed.
Change-Id: Ic3148cfb655f87d22c40bca7825809648c7b4b4a
CRs-Fixed: 952660
qcacld-2.0 to qcacld-3.0 propagation
Capture WMI version in a global variable for crashscope
to extract WMI logs.
Change-Id: I2f06eaf182bb67dceade397652f801e6311b8f68
CRs-Fixed: 978901
qcacld-2.0 to qcacld-3.0 propagation
GTX use this parameter to drop TPC and in turn TPC drop is the cause
for mcs rate drop and may happen in higher percentage. This change,
provide a way to select the desired value and reduce mcs-8 usage to
2% from 8%.
Change-Id: I64f05c8b41cf3d360819122a08eca72f3a2c1aed
CRs-Fixed: 1010564
qcacld-2.0 to qcacld-3.0 propagation
As per current implementaion whenever ACS is enabled via
INI all the update beacon from cfg80211 module fails because
sapconfig channel points to AUTO_CHANNEL_SELECT(0).
When driver ACS is enabled skip channel validation to fix
this issue.
Change-Id: Ie3e7d19332629fc860752b2240690fd6a15bb0a2
CRs-Fixed: 977101
qcacld-2.0 to qcacld-3.0 propagation
"log buffers are dropped" are consistently printed which
is affecting the tput KPI's. Masking the same with debug level
which is not enabled by default.
Change-Id: I6e9abc7d65f276d71810aedad9062152035699c0
CRs-Fixed: 956599
qcacld-2.0 to qcacld-3.0 propagation
Presently we are not validating the length of the essid received
and directly copying the buffer without size checking.
Perform bound checking before processing the scan req.
Change-Id: I786e4feb67bf039df3d217138a412da54f51787d
CRs-fixed: 890228
Currently hif_ctx is passed as a parameter in hif_get_hw_info
and hif_bus_reset_resume without any validation check for the
parameter. This change Validates hif_ctx before
dereferencing the hif_ctx.
Change-Id: I17636692863bfdded691594cef40ebe55e262849
CRs-Fixed: 1066838
qcacld-2.0 to qcacld-3.0 propagation
Currently, if get_station is called during roaming, host does
not send the correct rssi.Because of this, supplicant reports
very low rssi to upper layer and handover happens to cellular.
To mitigate this issue, send the cached rssi when get_station
is queried during roaming.
Change-Id: Icceb5839503ccd99e7aef535ee438d072d3a8823
CRs-Fixed: 1055388
qcacld-2.0 to qcacld-3.0 propagation
After interface down, kernel frees the ongoing scan
request memory and call cfg80211_scan_done.
Now, during IBSS change iface, stop adapter is called
which does not abort the scan. Once the ongoing scan is
done, HDD calls the cfg80211_scan_done for which kernel
has already freed scan req memory and this leads to crash.
Abort the scan during stop adapter for IBSS case also.
Change-Id: Ie53576399926cc3a07e6f66c0f3997b6617f9f04
CRs-Fixed: 1047004
qcacld-2.0 to qcacld-3.0 propagation
Currently, if MC list count is more than mc count that
target can support then host configures only max count that
target can support.Rest of MC addresses are dropped.
Now if host wakes up for any MC packet, there is no way to
identify if MC address was configured to FW or not.
Change the code to print all the MC address list that userspace
has sent to Driver and the MC address list that is sent to FW.
Change-Id: Idd63385a657d1af550cf07bbfe052ce465d30608
CRs-Fixed: 1023043
This changes fixes the qcacld-2.0 tp qcacld-3.0 propagation error
of Change-Id:I4b37d072bc92e003fcfe62ffe8f93f7c185eb6c7. Host driver
doesn't honor the Assoc reject with eSIR_MAC_TRY_AGAIN_LATER status
for non-PMF connection, due to this error.
Change-Id: Ib2defa27ee5c97ada53808d2e24a29b976fe5107
CRs-Fixed: 1067670
qcacld-2.0 to qcacld-3.0 propagation
Currently the age out of scan results is ineffective as the aging
timer is started only once the scan results are obtained from
the FW, which would expire in 1 sec, so it could be possible that
the cached scan entries may still persist and may not be aged out
To address this issue, purge the scan results by age, before the
scan results are updated to upper layer.
CRs-Fixed: 997430
Change-Id: Ib70b04f4a720123d21ba820dd3c1e86076083dc9
qcacld-2.0 to qcacld-3.0 propagation
In the driver, while processing the scan results, if the max
BSS limit is reached, all the newest scan results are dropped
and stale scan results are updated to upper layers.
To address this, remove the oldest scan entry if the max BSS
limit is reached.
Change-Id: Ib85a8a3b66fbf903311002887a3c5c3d10bfbccf
CRs-Fixed: 991417
qcacld-2.0 to qcacld-3.0 propagation
In limLogQosMapSet, dscp_exceptions is max of 21 size but
there is no limit check for num_dscp_exceptions.
Check for max size for num_dscp_exceptions to avoid overflow.
Change-Id: Ia1f64860f924aa0d586b2d0d532183ef9b18f2e0
CRs-Fixed: 933465
qcacld-2.0 to qcacld-3.0 propagation
In convert_qos_mapset_frame, dscp_exceptions is max of 21 size but
there is no limit check for num_dscp_exceptions.
Check for max size for num_dscp_exceptions.
Change-Id: Id098da5231b4f3e40abe369e52960859091dc200
CRs-Fixed: 931435
qcacld-2.0 to qcacld-3.0 propagation
If reg domain changes during connection and the connecting channel
is not valid, driver may connect to an invalid channel.
In this case wlan_hdd_cfg80211_update_bss_db will return NULL and
thus sta will not be registered to TL. This will cause RX frames
buffered in TL layer and eventually low resource condition.
To avoid this schedule a disconnect for the session if
wlan_hdd_cfg80211_update_bss_db returns NULL.
Change-Id: I72b62ea7d47f53db55daea5725fa833fd1a45fb8
CRs-Fixed: 1034569
qcacld-2.0 to qcacld-3.0 propagation
When RRM measurement request is received, it triggers a RRM scan.
Now if DHCP is in progress when this scan is triggered, DHCP may
fail leading to disconnect.
To avoid this block the RRM measurement request till DHCP is
completed or DHCP timeout happens.
Change-Id: I9f84bdc04519363933b5de3229bee9d1c4f9fe43
CRs-Fixed: 1020108
qcacld-2.0 to qcacld-3.0 propagation
For supplicant there is no way to differentiate between connect
failure due to assoc rejected by AP and probe resp/auth/assoc
timeout.
Thus use cfg80211_connect_timeout API instead of
cfg80211_connect_bss API if connect request fails due to
probe resp/auth/assoc timeout.
Change-Id: I675fa17d1151e957a04050490f3efe343fdcc7c6
CRs-Fixed: 1056230
qcacld-2.0 to qcacld-3.0 propagation
Currently DSRC feature is compiled for all the
targets even if DSRC is not required.
Fix to protect DSRC changes with DSRC enabled feature.
Change-Id: I2e6f975366e1de8aa8afb818a073e1591f76d7fb
CRs-Fixed: 1053362
qcacld-2.0 to qcacld-3.0 propagation
At the time of driver load, sap session is opened as part of
hdd_init_ap_mode but in case of sap restart, sme_open_session
is called from sapFsm.
At the time of opening session, sme_open_session register
wlansap_roam_callback callback for connection status.
If this callback is not registered, HDD will not get connection
status and HDD will start cleanup after SAP connection timeout which
will result in SAP failure.
Need to register wlansap_roam_callback as part of sme_open_session
when session is not created as part of hdd_init_ap_mode.
Change-Id: Ifd2cec5fec432f1dcd2b39c59df1f1c5b13c55d5
CRs-Fixed: 1051097
qcacld-2.0 to qcacld-3.0 propagation
In SAP case there are two situation when driver needs to do vdev restart.
1)Hidden SSID: In case of Hidden ssid, vdev restart happens.
In process of restart first vdev stop happens then vdev restart and
finally VDEV_UP happens.
2)DFS detection on current channel: In this case due to DFS detection
driver need to change the current channel.
To change the channel vdev restart happens.
There can be a race condition when restart is happening as part of
Hidden ssid or switch channel, wma_send_beacon can do vdev up.
Fix this by not calling wmi_unified_vdev_up_send if restart is in progress.
Change-Id: I16c86105748b34b76ed575fc2e69a54cc7bab1c6
CRs-Fixed: 958230
qcacld-2.0 to qcacld-3.0 propagation
Check if the spectrum management, short preamble, immediate block ack
are supported by BSS before sending Reassoc request in roaming and
reset the corresponding capability info bits in Reassoc request if the
respective BSS does not support it
Git-commit: 1424fcbda6a8a71484ead54c059e17069f9895d7
Change-Id: Ied61d9b963b0b8176655fadaa7f1458cb1e830ef
CRs-Fixed: 1002770
qcacld-2.0 to qcacld-3.0 propagation.
TDLS teardown event sent by firmware is not processed whenever
host is in WOW mode which will lead to failure of TDLS
teardown
Fix is to handle this event in WOW mode.
Git-commit: 9cd6b405b3b75ff59febc30b5d8a6374b3f69675
Change-Id: I3649bfdf4381f49483a3ffe2c80d5339b52a3764
CRs-Fixed: 1009456
qcacld-2.0 to qcacld-3.0 propagation
Currently when PE queue is full, timer message gets queued at the
end of PE queue even when timer gets expired in time. This causes
delay in processing timer messages. This delay can be maximum if
timer message is the last message in PE queue. This can take substantial
amount of time to process timer message as timer message will be
processed only after processing of other messages. For instance,
if timer message processing takes substantial amount of time during
scan, it can delay sending max channel timeout and may result in
scan timeout. So, add timer related messages at
the top of PE queue to process those messages immediately.
Change-Id: Iccaf0075c97a7edd2c1de1d168f1a4e7d01381c2
CRs-Fixed: 936179
qcacld-2.0 to qcacld-3.0 propagation
Currently, capabilities su_beam_formee are set during association request
but not in re-association request. This can lead to failure in beamforming
after roaming. Fix this by updating them during roaming as well.
Change-Id: I28e86b93a5114f3b76733effe4428a92cf94b441
CRs-Fixed: 1033328
qcacld-2.0 to qcacld-3.0 propagation
Currently the p2p scan results are not flushed if the p2p
scan is issued for a single channel scan which would result
in a stale entry.
To address this, flush the p2p scan results before issuing
single channel p2p scan.
Change-Id: Iaaee1b4b4147e68e99927ea90082bc6f288a2e72
CRS-Fixed: 855782
Propagation from qcacld-2.0 to qcacld-3.0.
During TDLS session establishment, assume the peer is HT
capable STA. If WMM-QoS is enabled in the DUT, but the TDLS
peer does not have WMM/WME IE in TDLS Setup Request/Response
and has QoS Capability element, then the DUT does not
transmit data with QoS. Thus, the throughput gets decreased.
Fix is to enable QoS for the STA for TDLS session if the peer
is HT/VHT capable or WMM/WME IE is present.
Change-Id: Id74983f41ce5de797202edc501f3904d57535ec6
CRs-Fixed: 1053852
qcacld-2.0 to qcacld-3.0 propagation
DUT is enabling QOS based on fixed capabilities in host which
is leading to issue of sending data frames withou QOS header
even though peers are capable.
Fix is to ensure that QOS will be enabled by interpreting
WMM IE.
Change-Id: I08d12ccfc6f1587f228618f2add4b5a1549df8ad
CRs-Fixed: 955872
qcacld-2.0 to qcacld-3.0 propagation
Currently, the QOS capability of the TDLS link is updated
based on the BSS capability. Thus, if the BSS is not QOS
capable, the TDLS link eventually is not considered as QOS capable.
To address this, update the TDLS link with the data path with the
QOS capability based on the TDLS handshake between the peers.
The information of QOS is obtained to the driver through
the change_station callback from the supplicant and thus
the information is updated to the data path accordingly.
Also, this commit advertises that the station is QOS capable
by default in the TDLS setup request /response handshakes.
Change-Id: I6a36fd77b333e66e8c030f5230b4aaaee6d7a00c
CRs-Fixed: 776081
Propagation from qcacld-2.0 to qcacld-3.0
Add diag event for WOW reason code.
The event EVENT_WLAN_POWERSAVE_WOW will be used to
inform the WOW reason code.
Change-Id: I9273c9e737b97207ce0acee131ab6f3c19cd3e0d
CRs-Fixed: 1037383
qcacld-2.0 to qcacld-3.0 propagation
If SAP receive auth from an already connected STA, it post
eWNI_SME_DISASSOC_IND msg to SME to delete the STA context and
return. STA may try to send auth again as it didnt receive auth
resp.
Now many frames (probe req, auth etc) may get accumulated in PE
message queue and unless PE queue is fully processed SME queue will
not be processed and thus del sta will get delayed. This may again
cause STA to send more auth req and every time MC thread process an
auth req before the sta is deleted, eWNI_SME_DISASSOC_IND msg is
posted in SME message queue.
And if PE keeps on getting auth before the sta is deleted,
SME queue will pile up leading to crash.
To fix this do not trigger del sta if it is already in progress.
Change-Id: Icff3778d35ef7ea646463fe49c4335e260e9e156
CRs-Fixed: 982329
qcacld-2.0 to qcacld-3.0 propagation
If BSS is present in kernel and driver scan cache, supplicant
tries to connect to the BSS multiple time even if the BSS is
unreachable. Due to multiple failures to connect supplicant
disable the network.
To avoid this, remove the BSS from scan cache:
- If connect fails due to BSS unreachable i.e. probe
resp/auth/assoc timeout and scan for ssid failure.
- If disconnect is due to Link lost.
Change-Id: I3263dd02691000d83d4aef61c75b72d78c28f582
CRS-Fixed: 1039104
qcacld-2.0 to qcacld-3.0 propagation..
P2P action frame confirmation can be called from work queue
wma_mgmt_tx_ack_work_handler as well as from MC thread during
remain on channel completion. So it can lead to race condition
where frame confirmation is called twice and driver tries to free
frame buffer twice.
To detect duplicate use PE global lock in P2P action frame
confirmation.
Change-Id: Id193b5a979fad5effa7c6b00d89452ad876ae00e
CRs-Fixed: 1035077
Propagation from qcacld-2.0 to qcacld-3.0
Some of the logs are printing quite often and spamming the kernel logs.
Hence move them to appropriate log levels and remove the useless debug
messages.
Change-Id: If38d7a6a3cf13a5879f6a628d3d7eb4f5156a95b
CRs-Fixed: 1001441
qcacld-2.0 to qcacld-3.0 propagation
Add changes to support VHT transmit power envelope sub element in
channel switch wrapper.
Change-Id: Ieac517ec44238034e1a5539cbe10ebbefb30dd09
CRs-Fixed: 1052716