hdd_for_each_adapter_dev_held_safe API takes dev_hold and
during cleanup of interface, dev is unregistered. So later
when dev_put is called, it results in illegal access to
unregistered dev.
Fix this issue by releasing dev_hold before interface cleanup.
Change-Id: Ib6bfe1a985f21be107b69beec0f92feccc98f34e
CRs-Fixed: 2855833
Adding history to track the FST lock/unlock events; this
would come in handy in debugging deadlock issues.
Change-Id: I40f783e72e516330fdf71ac91553bc7c4338b82a
CRs-Fixed: 2854397
Use wlan_reg_legacy_chan_to_freq api for channel to
frequency conversion instead of wlan_reg_chan_to_freq.
Change-Id: I06a2638a1e402dc6a750c672ed803e8dbfa254fc
CRs-Fixed: 2853575
A possible out-of-bound read can happen in the hdd function
wlan_hdd_set_sap_hwmode. To fix it, pass the proper length.
Change-Id: I11258c6d9f481a21afc3229762900153d6f83c82
CRs-Fixed: 2853407
With Change-Id: I7f38b3dc6975fcc208ad85e913564dfef5cc1cb7,
Tx register write is permitted after hif bus resume during runtime pm
resume, don't wait WMI_WOW_WAKEUP_HOST_EVENTID.
In F/W, there is an race condition when exit from WOW, both
WAL_TX_TID_TQM and WAL_TX_TID_TRANSITION_TO_TQM_ONGOING are not set yet,
data frame is received from host, assert will hapen.
To fix it, host tx register write shouldn't be permitted to update hp
until receive the WMI_WOW_WAKEUP_HOST_EVENTID.
Change-Id: Ic397652a9a0c4bc81667aed11805b2ce8070ee8d
CRs-Fixed: 2858115
Add ini 'cfg_tx_iot_aggr', it gives an option to
configure Tx aggregation size in no. of MPDUs/MSDUs
for specified OUI. This can be useful for IOT issues.
Format of the configuration:
cfg_tx_iot_aggr=<OUI-1>,<MSDU-1>,<MPDU-1>,<OUI-2>,<MSDU-2>,<MPDU-2>...
MSDU/MPDU means the max tx aggregation size in no. of MSDUs/MPDUs,
0 means not specified.
For example:
cfg_tx_iot_aggr=112233,2,0,445566,3,32,778899,0,64
If vendor OUI-1("\x11\x22\x33") is found in assoc resp,
set tx amsdu size to 2;
If vendor OUI-2("\x44\x55\x66") is found in assoc resp,
set tx amsdu size to 3, set tx ampdu size to 32;
If vendor OUI-3("\x77\x88\x99") is found in assoc resp,
set tx ampdu size to 64.
Change-Id: Idcf370a4bf93ca299ce1126eaba4394be1ab5b9d
CRs-Fixed: 2849203
Update reject ap type to string from int value while
dumping blacklisted bssid for debugging purpose.
Change-Id: I2a12949e9e46f6fad32cc54ac975dfbfbdba88ab
CRs-Fixed: 2857907
Change TWT nudge command to be asynchronous. Handle wake
time tsf field in the nudge command response.
Change-Id: I22c75a42bf60f52f52d7d7fe19f408ebb55f360a
CRs-Fixed: 2847173
Add support to include the session state in TWT status query
response. Session state is set to active once setup is
complete and when resume response event is received from
firmware. Session state is suspend when suspend response
event is received from firmware.
Change-Id: I1f47947c05f80bd85199fd81b951dc54deacdc09
CRs-Fixed: 2854500
Add support to get the following TWT target capabilities
1) Nudge 2) all twt and 3) statistics
Change-Id: If74e99b0ff920481bcabb0300129b9067082d113
CRs-Fixed: 2854927
When unit test WoW is executed, system suspend case is currently being
executed. Add a new case for handling unit test WoW suspend mode.
Change-Id: I9defa7175a638363a1dd736018d17a42d8afe6b3
CRs-Fixed: 2855437
Reduce stack frame size of sme_rrm_process_beacon_report_req_ind()
by using pointer for tpRrmPEContext.
Change-Id: I25bea9e9dd913f57c137ea3eb33f099c0370f70b
CRs-Fixed: 2856570
Initially, Host updates the AKM only after the EAPOL
handshake. Due to this, Enterprise auth is not detected
for initial connection.
So, add new API which gets the AKM from vdev and convert
it to WMI enum and send it in peer assoc command to firmware
during initial connection. In Firmware, this will help to
detect Enterprise auth as part of connection and prioritize
the WLAN connection over BT traffic accordingly.
Change-Id: I503601ca29f3aadd1ee359a535b4e60133f66476
CRs-Fixed: 2844318
The below described scenario can lead to a deadlock
between wlan_hdd_del_virtual_intf and the work handler
to update netdev features.
- netdev features update work is scheduled and takes the
vdev ops DSC lock.
- before the work is able to take the rtnl lock, a delete
interface is called from kernel with rtnl lock held
- wlan_hdd_del_virtual_intf waits indefinitely for all the
ops to be completed on this vdev.
- Now netdev feature update work is waiting for rtnl lock
with vdev ops DSC held, and wlan_hdd_del_virtual_intf is
waiting for vdev ops DSC with rtnl lock held.
In order to fix the above deadlock scenario, set a delete in
progress flag in wlan_hdd_del_virtual_intf and use rtnl_trylock
in the netdev features update work, only if the delete in
progress flag is not set. Using rtnl_trylock with a few equally
time spaced attempts to acquire rtnl lock will make sure the
features update is done it the work is unable to acquire the
rtnl lock due to any other netdev operation (apart from interface
deletion).
Change-Id: Iad6448d4d9bf7f4cbfcfc4c6fb3afb248afaeeec
CRs-Fixed: 2854713
The sequence of roam states info print depends on
the sequence of Tlvs coming via WMI_ROAM_STATS_EVENTID
event.
FW does not send roam trigger, roam scan and btm rsp
info to HOST in case of new host and old FW combo.
This results in 11v info print miss in kmsg log.
Fix is to print tlvs info in a proper sequence.
Change-Id: Ic51ceebcbf3846231c2181b0a4a92d59faaaaaff
CRs-Fixed: 2841325
Add validation for STA CSA channel change notify event:
1. acquire the wdev->mtx lock before invoke kernel API -
cfg80211_ch_switch_notify. Kernel will access wdev->current_bss
in the API, it maybe changed in other thread.
2. if the bssid is not connected in vdev, don't invoke kernel API -
cfg80211_ch_switch_notify since wdev->current_bss maybe unlinked from
kernel bss list. cfg80211_ch_switch_notify make assumption
current_bss existing on the bss list.
Change-Id: I0dd415a5576d29e3a7729768c8482205677ca3e7
CRs-Fixed: 2855494