Currently, when sap starts, it will get the default
country code for the country IE if 80211d enabled.
Using api wlan_reg_read_current_country() instead of
wlan_reg_read_default_country() to get the current
country.
Change-Id: I67e63630c56b17d0d6890704bc1852e40185cf48
CRs-Fixed: 2170425
Currently there is no need to get nol when removing nol from candidate
channel list, because status of nol is set to CHANNEL_STATE_DISABLE in
regulatory.
Remove channels whose status are CHANNEL_STATE_DISABLE when trying to
remove nol from candidate channel list.
Change-Id: I90722116814e837fca456de1b2ef88d8519e9aff
CRs-Fixed: 2180752
When auth failure occures, hostapd will issue BSS stop
command, resulting in BSS peer deleted. After that, auth
frame may still get received, and SAP callback may still
access BSS peer object for remote peer creation, which
results in an assertion.
Add more check points to make sure SAP callback is
handling the peer object addition correctly based on
different status of SAP state machine.
Change-Id: Icdb7ae2db018f16cb60878bda8bab1e791667cba
CRs-Fixed: 2179494
In function wma_unified_radio_tx_power_level_stats_event_handler, radio_id
is received from the FW in the fixed_param strcutre and is used to access
the buffer wma_handle->link_stats_results which is allocated in
wma_unified_link_radio_stats_event_handler. The buffer is allocated for
link_stats_results->num_radio and if the radio_id received from the
FW is greater than link_stats_results->num_radio, an OOB write will
occur in wma_unified_radio_tx_power_level_stats_event_handler.
Add check to return failure if radio_id received from the FW is greater
than link_stats_results->num_radio.
Change-Id: I67a848e7ab137d46bb43e7336ff8135da257568c
CRs-Fixed: 2169104
When start sap+sap with acs on 5g band concurrently, the first sap
usually choose dfs channel, the second sap will be failed to start.
Root cause is when start the second sap, bss hasn't been started for
the first sap.
Extend delay for acs_pending_work from 500ms to 1500ms, the first sap
bss will be started when start pending acs.
CRs-Fixed: 2175463
Change-Id: I723d18d72728a1f7a7cd7591395c12d950c535e9
Current driver requires hardware mode to be changed to DBS explicitly
through private IOCTL commands before you can monitor 2.4G channel for
2x2 DBS platform.
Provide a fix which automatically switch the HW mode to DBS when
monitoring 2.4G channel 2x2 DBS platform and keep HW mode to SMM when
monitoring 5G channel.
CRs-Fixed: 2176055
Change-Id: Icc653d7b11c7e58b583e9cd23db6478f568bd172
When getting vdev by sta_id, peer could be deleted after retrieved,
so garbage vdev is returned.
To protect peer info, increase ref_cnt and delete peer when the ref
count is 0.
Change-Id: I850d38166d7c16d7f5e580baf3e0d17db22583f8
CRs-Fixed: 2171619
Currently, HDD acquires an additional reference for vdevs it creates. Do
the same for pdevs and psocs, so they are not destroyed out from under
HDD.
Change-Id: Ifa89f3853f76fe98880f082a6a138068bf92b6ec
CRs-Fixed: 2179683
Currently, SME sends a eWNI_SME_SET_BCN_FILTER_REQ message
to PE which in turn builds a beacon filter request using
lim_send_beacon_filter_info and sends down a message to
WMA using WMA_BEACON_FILTER_IND. But, this message does
not have a handler in WMA. So, cleanup all these messages.
The beacon filtering is currently happening through
hdd_add_beacon_filter.
Change-Id: Id235d6303ce7c740f907147afc7248d833772067
CRs-Fixed: 2177429
Currently, iwpriv wlan0 getChannelList does not show
the right channel list, because it gives wrong parameter
to the API wlan_reg_get_channel_state().
Change-Id: I03c8aa9583a827b94c8aa2fff0b94335f4a040de
CRs-Fixed: 2176844
Currently, "insmod qca_cld3_wlan.ko country_code=CN" will
be fail because start_modules_in_progress is true so api
hdd_update_country_code() returns error.
Change-Id: I4378438873ffa72c0fce415ade65b91b90e2c84a
CRs-Fixed: 2176836
Do not process radar event until receiving vdev start response, because
during channel switch, radar may be detected again in the old channel.
Change-Id: I1a524e38c25f91c684fd2c4962aeaf556d2445eb
CRs-Fixed: 2175891
If firmware is stuck while driver unloading, sme_close_session
will return failure, and cause later timer leak, in this case
continue to release vdev.
Change-Id: I137d8d29ec18af1b222eb0b967916fa20b998894
CRs-Fixed: 2176949
Currently WMI handler for WMI_PHYERR_EVENTID is used to handle DFS and
spectral scan phy errors; but Rome FW still uses WMI_PHYERR_EVENTID
and WMI_DFS_RADAR_EVENTID and does not have spectral scan phy errors.
Restore WMI_PHYERR_EVENTID and WMI_DFS_RADAR_EVENTID as Rome FW
requirement.
CRs-Fixed: 2149939
Change-Id: I7a5c4f723bedfdeb477ac36ac1290809ca06fb13
Use iwpriv command "setRadarDbg" to configure dfs log level because
MCL does not have tools to trigger dfs_control.
Change-Id: I2d7b30b026dfedbf03002463652fead83220fa2a
CRs-Fixed: 2178636
Trim the scan channel list for ACS based on the channel list provided
from user space as part of acs config.
Change-Id: Iaafa6f78098c59782478351e206ae360d50b89bc
CRs-Fixed: 2177457
There is a very rare race condition between
ol_txrx_peer_find_by_local_id_inc_ref(running in OL RX
thread context) and ol_txrx_peer_detach(running in MC
thread context) where MC thread 1st got chance and cleared
the peer->valid flag before OL RX thread can increment the
ref count and this led to OL RX thread got a peer without
any ref count which was freed later while OL RX thread was
still using it.
Change:
1 Set peer to NULL if peer valid check fails in
ol_txrx_peer_find_by_local_id_inc_ref
2 release peer ref cnt for error case in ol_rx_data_cb
Change-Id: Id21350933386464e5814babcb078d9719572af86
CRs-Fixed: 2176704
When radar is found, the current channel is put in NOL list and the state
is set as CHANNEL_STATE_DISABLE.
Currently if channel state is not CHANNEL_STATE_DFS, it will not do channel
change. This is not correct.
Do channel change when radar is found in dfs channel
Change-Id: Iabc8ef5ee92e9d2dc83a95d8fce36a2271ca056c
CRs-Fixed: 2155835
When radar is found, the current channel is put in NOL list and the state
is set as CHANNEL_STATE_DISABLE.
So change the channel state check from wlan_reg_is_dfs_ch to
wlan_reg_is_passive_or_disable_ch
Change-Id: If0595682100746cb12ddb8a1c3ca0106ccd1af21
CRs-Fixed: 2178842
Memory for chan_info is allocated in hdd_wlan_startup() and
freed in hdd_wlan_exit(). When device boots up, memory gets
allocated for chan_info but if interface timer expires, all
the modules are closed and memory is checked for any leaks.
As memory for chan_info is freed in hdd_wlan_exit() so memory
for chan_info is still present and hence assert in
qdf_mem_check_for_leaks().
Allocate memory for chan_info in hdd_features_init() and free
it in hdd_features_deinit().
Change-Id: Ia8944da16a776d4de4fdfbb10b605ebd2b60f0b6
CRs-Fixed: 2178435
In wma_sar_event_handler, compiler with -Werror=frame-larger-than=
throws frame size larger than 1024 bytes build error.
Fix is to use heap memory for struct sar_limit_event.
Change-Id: Idd122b24a7e00b10404864e045eaa9df01852fd8
CRs-Fixed: 2177791
If gDisableDFSChSwitch is configured as 1, channel should not be
switched even radar is found.
Set usenol as 0 when gDisableDFSChSwitch is configured as 1.
Change-Id: I05c4afea3eb9af9c541b2324a2d50ea59c05f7d7
CRs-Fixed: 2178652
Old ch_width is set as invalid after radar detection, and can't be
used anymore. Update sap_ctx->ch_params after channel is selected.
Change-Id: I9e068785312d7072eeaeaa4b1aae4bd82d62d36f
CRs-Fixed: 2178586