Currently host relies on fw for vdev id for ll_stats
response but FW does not send the vdev id in response
of radio stats and peer stats as response of the ll_stats
request. Host needs this vdev id to get the adapter on
which the ll_stats request is received so that is can process
and send the response back to user space.
To address above issue add vdev id in request private
structure and when receives response from the FW, extract
this vdev id from private structure.
Change-Id: I28c411aea852b36cd1a13174e87adfa7972fc077
CRs-Fixed: 2964782
In case of STA + SAP concurrency and STA is on indoor channel.
Dont allow SAP to turn on, irrespective of DBS, MCC or SCC mode
of concurrency, if STA + SAP concurrency not allowed
on indoor channel.
Change-Id: I79582f88e81cb2c95d2da2480d1e3d7a8b86906f
CRs-Fixed: 2967952
Init htcinfo structure variables to 0 to avoid issues
due to any newly added uninitialized variables in the future.
Change-Id: Ie4cf5c99c09f56ee1fc898397bcd3ccf4b678638
CRs-Fixed: 2962285
wlan_twt_concurrency_update() calls the flush work internally.
So when the caller calls wlan_twt_concurrency_update api in
schedular context, flush work will block the schedular thread for
4 sec(twt enable/disable timeout value is 4sec). Because of this
the other request will be block till this time.
As part of fix, remove flush work and reduce twt enable/disable
timeout to 1 sec
Change-Id: I8f16da44b21cf54fcf2256aaef53371431e64aac
CRs-Fixed: 2963695
qdf_freq_t is by default defined as uint32_t, but hdd_ctx->
unsafe_channel_list is defined as uin16_t because cnss interface
is defined as uint16_t, so can't pass hdd_ctx->unsafe_channel_list
to ucfg_policy_mgr_init_chan_avoidance() which expect qdf_freq_t
list.
Convert hdd_ctx->unsafe_channel_list to qdf_freq_t list and pass
it to ucfg_policy_mgr_init_chan_avoidance().
Change-Id: I0207827e3cbaa82526e97d2826d90d396148c84a
CRs-Fixed: 2964178
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