Fix the following regression issues which will cause get peer
statistics failure:
- Number of peer statistics is not updated in the callback
- Sta info reference count is not released
- Incorrect nla len
Change-Id: Ia7cdf28324402fd647a6d4e80b27612ccabb32f2
CRs-Fixed: 2785764
NDP connection will be active for keep alive period when there is no
activity. The default value for this keep alive period if 20ms.
update the default value as 14ms to reduce the wait time for connection
termination.
Change-Id: I3d09ce764846d7e535a7369d32a730907b621735
CRs-Fixed: 2802723
Kernel version check of backport flag CFG80211_FILS_SK_OFFLOAD_SUPPORT
was removed from hdd_update_connect_params_fils_info() by accident,
add it back.
Change-Id: Iaa42aea4fd0bd15c27b8f70412b6420ca25cd005
CRs-Fixed: 2800896
Host is not enabling WTC_BTM roam trigger via
roam_enable trigger command
(WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID). Because
of this roam scan is not triggered and BTM response is
not sent to AP.
Fix is to enable WTC BTM by default
Change-Id: Ie33f8a298818955c886094d6f703b9603ab5b00e
CRs-Fixed: 2795665
Add proper kernel-doc comments for the PLD APIs to force assert FW.
Rename pld_collect_rddm() to pld_force_collect_target_dump() for better
understanding.
Change-Id: I8e0639a120c893dde8ee1cfd5d2aea662eaebf3f
CRs-fixed: 2800567
If CNSS function pld_force_collect_target_dump() returns 0, this means
that FW is already asserted and should not call cds_force_assert_target().
Add an if check for pld_force_collect_target_dump() to only call
cds_force_assert_target() when it is not 0.
Change-Id: Ib784c1a406b93327942164a975994065149aed90
CRs-Fixed: 2799461
Due to low memory in Host, sometimes memory allocation might fail.
Free allocated memory to LL stats substructures in case of such
failures.
Change-Id: I2f3956d14348c57502d27aecef6225246a7970fa
CRs-Fixed: 2795970
Currently roam_candidate_count is incremented without
validating the band. roam_candidate_count is incremented
even connected channel band is different than curr node
channel band i.e count is updated from different bands
also which may result into high dense roam.
Avoid updation of candidate count from different bands.
Update roam_candidate_count in case connected channel
band and curr node channel band is same.
Change-Id: If25426abda440926a38755c3a1ec2ce2a291aa9c
CRs-Fixed: 2787119
Currently, If hadware is not dbs capable opportunistic timer
can not be started. In function if_mgr_connect_complete
policy_mgr_check_n_start_opportunistic_timer fails to start
opportunistic timer in case of non-dbs hw and sap restart
doesn't happen.
Fix is not to validate status returned by
policy_mgr_check_n_start_opportunistic_timer to restart sap
in case of non-dbs hardware.
Change-Id: I3308a5c10341950d51419907cc767c09f967b7b1
CRs-Fixed: 2792764
Currently driver does not update rssi on connect, driver
only updates rssi on get_station command. If driver does
not receive get_station command between connect and disconnect
in that case driver will send invalid rssi value to userspace
as part of the big data logging command.
For example, in current scenario if station is connected to an ap
and if this station moves away which will change the rssi and
finally it will result in disconnect because of low rssi, at this
time rssi value stored in driver will be the value corresponding
to the last connection(low rssi). Now if this station connects to
some other ap and this connection fails at EAPOL so for this
connection driver will not receive any get station command and
it will not update rssi corresponding to the second ap and when
driver receives big data stats command it will give incorrect rssi
value of previous ap (low rssi).
To address above issue update rssi in host driver at connect
time also.
Change-Id: Ieac4b42033e8ad011e36384b0cd52a2c1f0a352e
CRs-Fixed: 2798813
hdd_for_each_adapter and hdd_for_each_adapter_dev_held are not
delete safe APIs. These APIs may cause synchronization issues.
To address all synchronization issues, use
hdd_for_each_adapter_dev_held_safe api across the driver.
Change-Id: Ic05a707d2f6ee4822a4c3f818c9706a1581bc89c
CRs-Fixed: 2795661
hdd_for_each_adapter_dev_held will become infinite loop if the
adapter list entry is deleted in a parallel thread. This is because
deleting adapter list entry will make the entry to point to self. So,
it will loop for same adapter in the next iterations also.
To avoid this, get the current and next adapters at the start of
each iteration and take the corresponding netdev references.
Change-Id: I4bb65ce06c42c20bd9865f6a1ce7267ca69243e9
CRs-Fixed: 2799927
Don't connect in HE mode if the AP operating in 2.4 GHz does not
support LDPC coding.
Also, some peers which operate on 2.4 ghz and don't support LDPC
coding, might satisfy the condtions which is used to force enable
ldpc coding bit. If this bit is set, the peer doesn't support ldpc,
it might fail to connect.
To fix this, force enable ldpc coding only when peer is operating
in 5/6 Ghz along with the already existing conditions.
Change-Id: I4b424833bbf845de17acc0907e1098c0a01b3ee5
CRs-Fixed: 2760506
Change the default value of in CFG_REPORT_MAX_LINK_SPEED
to CFG_STATS_LINK_SPEED_REPORT_ACTUAL instead of
CFG_STATS_LINK_SPEED_REPORT_MAX_SCALED so that
gReportMaxLinkSpeed uses the default value as zero which
was previously 2.
Change-Id: I459c807b1738e21a28c5b51e2eeb6a4bccb78662
CRs-Fixed: 2787888
Add feature GENERIC_SHADOW_REGISTER_ACCESS_ENABLE to enable
shadow reg write for generic shadow registers.
This is enabled only for HSP.
Change-Id: I90302aa050baa9128313dbaf0c4ab57e426289b3
CRs-Fixed: 2794917
The MDID is not updated in RSO command. So FT roaming
failure happens.
Update the MDID in RSO commands.
Change-Id: Ie68b379ab29c063c90d8461d0be34fd09a105e3f
CRs-Fixed: 2795319
During SSR with the new changes the stop adapter would be invoked,
this would free the scan ie's and will not be able to configured
after the SSR.
Free the scan ie's as part of the uninit which would be called as
part of the netdev down.
Change-Id: I781eefbf0ae7a9e64bc6cb2ead98f45919587f64
CRs-Fixed: 2724670
Issue: log level for some frequent prints is set to info
those logs would be present in dmesg as well as driver logs
and System performance may get affected due to excessive
logging.
Fix: Avoid redundant logs which may affect system
performance and change default log level to debug.
Change-Id: I025f4cfdc0931a3e5d9c6a7eed96240dba738211
CRs-Fixed: 2794313
A htt message arrived after ipa context is freed as part of
deinitialization which was dereferenced by event handler
assigned to pdev->ipa_uc_op_cb, resulting in crash.
To fix this, cdp function is called during deinit to
deregister pdev->ipa_uc_op_cb and assign it NULL. Also, adding
NULL check in wlan_ipa_uc_op_cb. Also, registering ipa_uc_op_cb
after work is created so as to not hit condition where work is
scheduled before creation.
Change-Id: Ib79136b1122625079d8173a401dba5516126c621
CRs-Fixed: 2794663
Validate the phymode before sending to firmware in
lim_set_ch_phy_mode()
Change channel mode check from MODE_UNKNOWN to WLAN_PHYMODE_AUTO
or WLAN_PHYMODE_MAX
Change-Id: If7f869b750c74f9782b066f7e92b2c94c29bcbb7
CRs-Fixed: 2792691
gOclCfg is no longer supported and is being overwritten by
FW init config. Thus, remove gOclCfg ini from code.
Change-Id: Idf4d5280043a47650a68dc2159c386d94b0be5e9
CRs-Fixed: 2791392
Hardware filters are supported for STA and P2P client modes only.
It's not supported/configured for NDI mode but the
WMI_HW_DATA_FILTER_CMDID is sent to firmware with disable flag
to flush the filter. Avoid sending it for NDI vdev.
Change-Id: I34d87a4d00138386affcedecd20b7ccc90fbd05e
CRs-Fixed: 2795980
Currently, if the TDLS timer expires while the scheduler thread
is processing something(e.g., station vdev destroy), the handler
would be in wait queue and it gets called once the scheduler
thread is done with its current task(i.e., vdev deletion).
TDLS handler tries to use the vdev even it has just got freed,
which leads to use-after-free.
This happens because of the below,
1. vdev destroy notification has no knowledge of the TDLS timer
expiry as timer_stop is used to stop the timer.
2. vdev is passed to TDLS handler as part of registration.
Fix:
1. Use timer_stop_sync in vdev_destroy_notification to make
sure the handler is posted to scheduler thread if the timer
had expired.
2. Get the vdev in handler from psoc instead of passing it to
the timer handler. This can make sure the vdev is referred
only if it exists.
Change-Id: I186fd0d44b2364ebb375a8445dd1239368543e7b
CRs-Fixed: 2792020
In SAP mode host checks OCV capability in self rsn capability and
peers rsn capability. If both self and peer are OCV enabled, then
host adds OCI IE in SA Query response.
Thus OCV enabled STA successfully connects to host(SAP) if OCV is
enabled.
Change-Id: Id9973f0b915c9aa7c4214165deafc081f5a7cb20
CRs-Fixed: 2789921
In internal builds, to catch all fw timeout issues, host-initiated
self-recovery is not enabled. To avoid a race between cld driver
triggering assert and RDDM dump collection, use the CNSS-provided
sync API, which guarantees target assert and dump collection before
returning.
Change-Id: Ib702bfa17616a100913f501f850d5c0b74ad39bb
CRs-Fixed: 2790271
Set nan_feature_config default as 0 from 1 in INI to have DW interval for
NMNS mode when device goes to suspend mode.
Change-Id: Ib0044ca36cba570f51edcc0006f8e54c55d673d3
CRs-Fixed: 2776238