If rmmod is in progress, return -EAGAIN for idle shutdown such that
cnss driver does not power off the soc and rmmod can succeed.
Change-Id: I91845da41bb666792a55aa3d446058025ce0fadb
CRs-Fixed: 2751194
During the module initialization the scheduler thread and the
init thread run in parallel if there is a failure in the error
path, the scheduler thread is not aware and still sending
the messages to firmware resulting in system instability.
Disable the scheduler as soon as there is an error in the init path.
Change-Id: I50546a84cbfed86a0bdd6e4e38ede411f4e924d2
CRs-Fixed: 2742025
When DFS channel is used WMI_VDEV_TSF_TSTAMP_ACTION_CMDID is
sent to fw before vdev is in up state. It leads the tsf capture
to enter into HDD_TS_STATUS_WAITING state as the fw returns
invalid tsf in the TSF report event.
The tsf capture has to be restarted to recover from this state.
Fix this by Calling hdd_stop_tsf_sync() while entering into CAC,
the subsequent call to hdd_start_tsf_sync() will restart the tsf
capture.
CRs-Fixed: 2750676
Change-Id: Ie2fdf719d4b57035bf6fcc11824a894a1e313e23
Currently, stats over QMI features can only be disabled over build flags,
which is not flexible. Hence, add a CFG ini item to enable/disable stats
over QMI.
Change-Id: Idb27b712f8a831059dd6d6d12350533361d4d693
CRs-Fixed: 2752316
Directly dereferencing pointer beacon_xmit_ind before
null-checking, which may result in null pointer issue.
Meanwhile, measurement_idx should be checked to avoid
out-of-bounds read.
Fix is to check before dereferencing it.
CRs-Fixed: 2751550
Change-Id: I5241b3b16fcd9a04da121fd938b27d4070ea4e06
Size of rsn_caps/mlme_ht_capabilities_info/mlme_ht_ext_cap_info are 16bit,
mlme_ht_param_info is 8bit, it casts the pointer type to (uint32_t *) to
get a 32bit value, which results in out-of-bounds read.
The fix is to cast according to the size of the original type.
CRs-Fixed: 2752734
Change-Id: I20131b8539157f30471723d7211fbf8b209c494f
Currently there is no check for WLM latency manager support,
while setting the latency level which may lead to undefined behavior.
To address the above issue add a check for WLM latency manager support.
Change-Id: I03aebc1a87a5a40265eea1189503d73f35472644
CRs-Fixed: 2746738
In roam trigger print the driver doesn't include the current
RSSI threshold info.
Add the current rssi threshold value at which roaming was
triggerd in roam trigger logging.
Also refine the candidate AP blacklisting related prints.
Change-Id: I6d39851278081a728b74e036c22e8d302d7b7b4c
CRs-Fixed: 2752998
Declaring variable spectral_cb without initializer in
sme_register_spectral_cb, spectral_cb.vdev_get_chan_freq_seq2
will be used uninitialized.
To fix it, initialize spectral_cb when declaring.
CRs-Fixed: 2751599
Change-Id: I2c5cd5a85b54dcbda3059bfd528cd18626b6b316
Add NULL check for roam profile in csr roam sync callback as the
the session current profile can be freed in disconnect process.
Change-Id: Ia127cb9fb7a6185c0a57a2c28d72fb234087c7c8
CRs-Fixed: 2739817
After successful roam synch indication received in 802.1x/WPA3
security roaming, the peer will not be in authorized state since
EAP/EAPOL handshake is handled at the supplicant. Simultaneously
there is continuous vdev pause/unpause events from firmware, so
EAP handshake fails and EAP timeout kicks-in at supplicant and
disconnect is triggered. But on new connection the
hdd_reassoc_scenario flag is not reset, so
__wlan_hdd_cfg80211_ll_stats_get always returns failure and the
framework displays low rssi even though the connected AP rssi
is good.
Reset the hdd_reassoc_scenario flag after any disconnection.
Change-Id: I7b00fef86fa37d6e7ab857be1750add142f7e647
CRs-Fixed: 2752022
Use ROAM_11KV_CTRL WMI vdev command to enable/disable the roaming
functionality in FW.
Change-Id: If3bb344ec7058d4149d0064975d7c91f213fd105
CRs-Fixed: 2727671
Packet log and Monitor mode features cannot coexist, since both
share common ring resources concurrent access is not expected.
so don't enable packet log when device is in monitor mode.
Change-Id: Ibb3ed6dc36e5797c654c37fc567eb89bdaa1ea39
CRs-Fixed: 2745973
During SAP stop in CAC wait time, if peer are connected to SAP,
the peers are not deleted leading to peer leak.
Fix is to continue with disconnect in lim_process_mlm_disassoc_req_ntf
and lim_process_mlm_deauth_req_ntf as lim_send_deauth_mgmt_frame
and lim_send_disassoc_mgmt_frame already have code for not sending
deauth OTA during CAC time.
Change-Id: I33580f35cbe5bf9c0558fbd6138235a2a1edc645
CRs-Fixed: 2750966
FW only needs chainmask configuration one time before vdev start.
If set chainmask configuration in restart, the side effect is
OMN action frame will be sent by FW before channel switch count is
changing to 1 or 0 in SAP interface. Data/Action frame OTA is not
allowed in this timeframe according to VHT-4.2.16h certification
test.
Fix by set chainmask only for vdev start.
Change-Id: I6c2e8da351b18b521db0a946bb7ea64ab071c314
CRs-Fixed: 2742126
Current parameter passed to lim_get_crypto_digest_len will be either
SHA386 or SHA256, won't return -EINVAL in any case.
For later considering, return 0 if parameter not the 2 crypto types.
Change-Id: I6cd7481a06106138df7ba18fbe9ed4eece246607
CRs-Fixed: 2751809
Currently there are 2 places where max number of keep live pattern
are defined:
1. #define WMA_MAXNUM_PERIODIC_TX_PTRNS 6
And it can be configured by CONFIG_CFG_MAX_PERIODIC_TX_PTRNS.
2. #define MAXNUM_PERIODIC_TX_PTRNS 6
And it is hard coded value.
It is possible to have different values defined on some platform,
so we might give tgt_cfg->num_keep_alive_pattern value as 2,
but still allow more than 2 keep alive patterns adding to target,
where assert might happen.
Fix it by defining max number of keep alive pattern at one place.
Change-Id: I70ec3fa2e56a39cf8086750d966d95e41b2b75a7
CRs-Fixed: 2745443
In Case device is in suspending, if there is a disconnection,
disconneciton may fail as wmi cmd is not able to send to fw.
Add synchronization resume before disconnection as a protection.
Change-Id: I250d3a86183a61629e9369f49209c5a058a9a9a1
CRs-Fixed: 2746816
In WAPI conenction the check for WAPI authmode is missing.
And thus AKM filles in open mode leading to not seinding the WAPI
IE in assoc req and thus Assoc reject.
Fix by properly handling the WAPI case.
Change-Id: Ic7b7b7e5ffce46e30ade20395406287e1b5a5fce
CRs-Fixed: 2744415
Req has been freed in csr_roam_send_rso_cmd when post msg failed.
Avoid use after free and double free in csr_post_rso_stop.
Change-Id: I86e6360eed1a57d0bac218f799393fff0e2a4a58
CRs-Fixed: 2748399
Host sends the WLAN_MSG_WLAN_STATUS_IND to WiFi Location Service(WLS) via
cnss daemon which includes supported channels. WLS service is yet not 6GHz
capable. Hence to limit the 2.4GHz/5GHz channels only in
WLAN_MSG_WLAN_STATUS_IND introduce new INI "wls_6ghz_capable".
Change-Id: I77b284d2025601fec72aa35d430f18865f15f247
CRs-Fixed: 2748489