Unlike wpa2, in wpa3 roaming scenario, roaming is not fully
offloaded to FW, EAPOL handshake and key install are done
from host, in current design during assoc completion handler,
it sends STA_CONNECT event to IPA and IPA gets hung waiting
for buffer replenish from FW and FW is waiting for current
thread to return, this causes deadlock, so defer sending
STA_CONNECT event to IPA after EAPOL handshake and key install
for all the secure connections, hence IPA HW is ready to
process the STA_CONNECT event, in this case.
Change-Id: I19961cdd303ccef13621c7a20867ba852342a526
CRs-Fixed: 2958313
Currently driver issues ll_stats command without considering
that there could be previously allocated memory which is not
freed because of timeout.
FW can send radio stats with multiple events and for the first
event host allocates memory in wma and processes all the events
with this memory, there is a possibility that host receives first
event and gets timed out, time out host frees the allocated
memory. Now if host receives remaining events it will again
allocate memory and processes these events and will set
nr_received as 1. Now if host issue new ll_stats request to FW,
in response processing it don't allocates new memory and just
appends new stats and increaments nr_received when nr_received
becomes equal to number of radios, it calls the hdd callback
and completes the request and frees the memory, after that host
receives the next event of this request and will allocates the
memory similar to above process and this event will be completed
as part of the response of the next ll_stats request, similar to
above process. This scenario will always have memory for one
radio stats response as non-freed which leads to memleak
issues.
To addrerss above issue, before sending any new ll_stats request
to FW, free the memory allocated for previous event.
Change-Id: I4bfd5bcb62416c243aa6023382070cbd993655c7
CRs-Fixed: 2961638
In monitor mode in case of restart failure,
event WLAN_VDEV_SM_EV_START_REQ_FAIL is used to move the vdev SM
to init state. But this event will not be handled in
WLAN_VDEV_SS_START_RESTART_PROGRESS and thus the vdev stop/down
won't be sent for the vdev.
Use event WLAN_VDEV_SM_EV_RESTART_REQ_FAIL for restart failure
to send vdev stop/down.
Change-Id: I2db459136955b8dc2213c0251284a08a8f57aa57
CRs-Fixed: 2964875
Define A_OFFSETOF macro to fix compilation
errors.
A_OFFSETOF macro is mapped to macro offsetof()
defined in stddef.h.
Change-Id: I766826d610fcb6a06775f07bcd8a041ee29be89b
CRs-Fixed: 2967130
Validate fw capability to handle big data command before sending
big data stats request to fw.
Change-Id: Id7df4c3ac36e25761938758472ea9281c174a8c9
CRs-Fixed: 2937523
EAPOL handshake is done by wpa_supplicant in initial connection
and WPA3 roaming as well. Driver is supposed to wait for EAPOL
handshake/key complete timeout after getting roam sync indication
from firmware. But this wait is skipped with the change
change-id : Ie4f06cfcb066ae245de024b62da586aade783aec.
Add the same check again.
Change-Id: I437c6be15d7c1a3775a177c2da6c581d417c2533
CRs-Fixed: 2963548
The 6GHz HE capability macros were backported from kernel version 5.8
into 5.4, so change the check for kernel version to simply check for
the macro definition itself.
Change-Id: I86a9dfa964356ba65bd21ffef802042d442356bc
CRs-fixed: 2960286
If the 11BE feature is enabled, 320MHz is added to the channel width
enum. This causes a compilation error in switch cases that do not handle
this case. Add the 320 case to the switch statement.
Change-Id: I6cf4f1395f9f8eb2fc14029dc371742362befa80
CRs-fixed: 2961456
When SME/CSR layer received assoc indication, can't get session id by
bssid in some cornel cases, assoc req is leaked.
Change-Id: I877887fc0e2fe79a4ade53ba4aebc158fe480c28
CRs-Fixed: 2964966
Without this change, wlansap_set_channel_change_with_csa() only allows
parameters with new frequency. Enhance it to support width only change.
Change-Id: I5855db5d43cbb8bc63ff70f2bd792b447cd88809
CRs-Fixed: 2960232
Refactor csr_roam_pmkid_req_callback to use
mlme_cm_osif_pmksa_candidate_notify and move other
unused API under CM flag.
Change-Id: I835d54804f733eddff48de38e4c545a87f34bb30
CRs-Fixed: 2965602
Firmware sends NAN log events to driver and these are logged
with info level to capture complete NAN state machine logs in kmsg.
Currently, these events are received/processed in soft IRQ context
and causes performance issues as logs introduce delays. Move the
event registration to RX_WORK context to avoid delays.
Change-Id: I15ba20059f55f002cfe276d62e68e3cc09136a23
CRs-Fixed: 2960359
Possible bufer overflow risk in function
wmi_unified_bcn_tmpl_send.
Validate the beacon template length against
WMI_BEACON_TX_BUFFER_SIZE length to avoid overflow.
Change-Id: I98665de677f314f30a57991f48191f847718740c
CRs-Fixed: 2960714
For dual sta case, if vdev0 disconnected before vdev2 disconnected, vdev0
PCL cmd retained vdev level, after vdev0 reconnected first, just allowed
intra band in PCL, only can roam in intra band.
Fix: When vdev disconnect, reset it's PCL cmd to pdev level.
Change-Id: I3ed3ec398cfe1a17d07ce716c27026b9660305bd
CRs-Fixed: 2960194
In cnss-daemon TP level as WLAN_SVC_TP_NONE do not reset
tcp_adv_win_scale value. Use TP level as WLAN_SVC_TP_LOW to
reset tcp_adv_win_scale value. Do not send indication if TP
level is already WLAN_SVC_TP_LOW.
Change-Id: I2d7b8b55928c7eacc87832d8be559cba99d6c2d9
CRs-Fixed: 2950037
Set PCL command should be sent to firmware only for STA mode.
For P2P vdev, except the connected band, the other band channels
are marked disallowed. With this, if the set PCL command is sent
then STA can't roam to the disallowed channels.
Hence don't send PCL command if the vdev opmode is not Station.
Change-Id: I6c4917f75d5f14169e2c564d5f6deee819fb629a
CRs-Fixed: 2939148
Map below UnitTest command to TPUT_DEBUG_MODE_ENABLE.
iwpriv wlan0 setUnitTestCmd 0x48 3 84 1 1
To reduce Logs, Change agrument of existing command to
1 so that changes are printed once in three seconds.
Change-Id: I1250c13da5e4a81fb90e505dc3a2f9f93a5e603b
CRs-Fixed: 2957994
Diver SAE auth frames for P2P via SME-LIM so that SAE auth retry
logic takes effect for P2P CLI interface. Add support to handle
SAE auth timeout for P2P CLI.
Change-Id: Ie01d7acf729974f8894223611a727a9b1680ba2d
CRs-Fixed: 2956475
There is potential issue about array access out of bounds when set
CFR configuration. Since HDD_INVALID_GROUP_ID - limit index of array
is different to MAX_TA_RA_ENTRIES - array size. This change redefines
HDD_INVALID_GROUP_ID and lets it same to MAX_TA_RA_ENTRIES.
Change-Id: I5e30c8d2ce93736467cae465b06a1e28e93458d5
CRs-Fixed: 2960584
Assign the sap_ctx->ch_params from the whole struct of
config->ch_params. This is to fix some fields missing
in sap_ctx->ch_params, such as "mhz_freq_seg0".
Change-Id: Id6e6be50635001faf45c84d136976cc27f41c7d5
CRs-Fixed: 2962952