During SSR we check if the driver is in bad state, to decide
whether we should send suspend to the fw. This causes a race
when SSR occurs during driver probe, since the driver state is
still marked as bad.
Clear the flag indicating the driver state as bad during the
start of probe.
CRs-Fixed: 2144058
Change-Id: I13087dc65dbffa6a784395606fac2c41f6ce7591
IOCTL cannot handle names more than 15 character long.
So rename enable_range_ext to range_ext.
Change-Id: I9134cc76357f1cd6e175581fa072a8cbb67c19e4
CRs-Fixed: 2146728
The reinit logic for SAP shouldn't initialize all the data
structures related to ACS to 0 after SSR.
Change-Id: Id637968b3e0edc0f3698836802012f5921c5c79e
CRs-Fixed: 2150314
WLAN driver changes this system paramerter (via cnss-daemon) when the RX
throughput requirement changes LOW->HIGH or HIGH->LOW. This depends on
the whether the number of RX packets received in last 100ms interval is
greater than 500 or not. The 100ms and 500 thresh params are
configurable via WLAN ini file WCNSS_qcom_cfg.ini.
Add ini support to enable/disable changing of this system parameter by
WLAN driver. Since tcp_adv_win_scale is a system parameter, some
customers may not want the WLAN driver to change it and may want to set
their own default values.
"gTcpAdvWinScaleEnable=0" when added to the ini file will prevent
the driver from making any changes to the system parameter
"/proc/sys/net/ipv4/tcp_adv_win_scale". The default value of the ini
file param gTcpAdvWinScaleEnable is "1".
CRs-Fixed: 2033338
Change-Id: I19288bba11841cf176118abaf08ccaabaf2f79b9
hdd_vdev_create currently uses the unconditional vdev ref grabbing API,
wlan_objmgr_vdev_get_ref. While this may be the single valid use case
for the API outside of objmgr core, it is better to avoid using the
uncondional API outside of objmgr core at all. This sets a good example
for future consumers of the vdev ref APIs, and makes it easier to spot
incorrect usages of the unconditional API. In hdd_vdev_create, use
wlan_objmgr_vdev_try_get_ref and abort the vdev create operation if a
reference cannot be obtained.
Change-Id: Iafdcec9752b7189f8c74b8838b2d9261676184f9
CRs-Fixed: 2150258
In function wma_extscan_cached_results_event_handler,
event->num_entries_in_page is received from the FW and is used in the
function wma_extscan_find_unique_scan_ids to calculate scan_ids_cnt
from src_rssi buffer. If the value of num_entries_in_page is greater
than the number of src_rssi buffers present, a buffer overread would
occur in the function wma_extscan_find_unique_scan_ids.
There is already a check in place to valudate num_entries_in_page in
the function wma_extscan_cached_results_event_handler however it is done
after the call of wma_extscan_find_unique_scan_ids.
Move the checks on num_entries_in_page before using it in the function
wma_extscan_cached_results_event_handler
Change-Id: Ib5e803589deb6ca074cb70326b9ce846d0754a73
CRs-Fixed: 2149720
In multiple WMA event handler functions, ssid_len is used to copy
ssid from FW buffer to local buffer and ssid_len value is received
from the FW. If the ssid_len value exceeds SIR_MAC_MAX_SSID_LENGTH
then a buffer overwrite would occur.
Add sanity check for ssid_len against SIR_MAC_MAX_SSID_LENGTH in
multiple WMA handler functions
Change-Id: I9e4b1f88c275093b4912496cdb936cf54a8880a2
CRs-Fixed: 2149531
In function wma_unified_radio_tx_power_level_stats_event_handler,
power_level_offset is received from the FW and is used to memcpy data
from FW to local tx_time_per_power_level for num_tx_power_levels length.
However tx_time_per_power_level is allocated only for
total_num_tx_power_levels length.
If the power_level_offset is greater than total_num_tx_power_levels, then
a buffer overwrite would occur.
Add sanity check to make sure power_level_offset does not exceed
total_num_tx_power_levels
Change-Id: Ia363512ee35bb0e30b137c20bf092238c2e356da
CRs-Fixed: 2149501
Enable FEATURE_WLAN_DOWOW for pcie.
This is for backward compatible with rome fw.
Change-Id: Ia2107ff6939666b4a0bd19d57149d17814f2dfb5
CRs-Fixed: 2070426
check if the modules are enabled before setting the
start_modules_in_progress flag. In some scenario one
thread could be checking if the modules is enabled
by setting start_modules_inprogress flag, in the
other thread context some process reading this flag
can take a wrong decision resulting in
not expected output even though modules are properly enabled.
Hence, set the start_modules_inprogress only if
modules are not enabled.
CRs-Fixed: 2142855
Change-Id: I24345375bb1ad21d055ff934a72b3df4d815ea16
Reset the sap configuration ie while stopping the adapter in
the sap mode to avoid memory leak.
Change-Id: I5b47afe561430fcb3f508820bc74c28b56d28b3c
CRs-Fixed: 2123524
Remove unused dfs code from qcacld-3.2 project as dfs
code moved to cmn project.
Change-Id: I21a8e5a39df9241544ef53baf42d3aa0ba434636
CRs-Fixed: 2133649
Propagation from qcacld-2.0 to qcacld-3.0.
Change local variables to dynamic in lim_process_auth_frame as stack frame
over 1024 bytes may cause build failure in 32 bit platforms.
Change-Id: I83cf5ab24693e0ce012894d808ac79bf37fa9a08
CRs-Fixed: 2147286
Although the kek_len should have already been validated before the
function is called, update wlan_hdd_save_gtk_offload_params() to limit
kek_len to the maximum allowed value before using it to copy the kek.
Change-Id: I0676521171343c6fe58afcdc31477f555598c490
CRs-Fixed: 2140033
While stop interface by "ifconfig wlan0 down" in connection
status, in wlan_hdd_try_disconnect, the disconnect indication
doesn't send to kernel, wdev->current_bss in kernel will not
be null; In nl80211_trigger_scan, it will check wdev->current_bss,
it will return if it is not NULL, which causes scan fail, and
this is a very low ratio issue.
Add disconnect indication to kernel.
Change-Id: I5f652b49c87ff2fb5c7f34dd3a826307fb3bb7e1
CRs-Fixed: 2128100
The existing INI gSapForce11NFor11AC forces both P2P-Go and SAP to 11n for
11AC. Add gGoForce11NFor11AC to force SAP and GO separately.
Change-Id: I26dce96ec582bed0ff3c62bd5f06fc96e85f0ee4
CRs-Fixed: 2140051
In function wma_extscan_hotlist_match_event_handler, numap and src_hotlist
are received from the FW. src_hotlist is pointer to the hostist data
and is looped for numap times and copied to the local buffer dest_hotlist.
If the value of numap is not equal to the number of src_hotlist data
present in the buffer, buffer overread would occur during memcpy.
Add check to validate the len of the buffer received from the FW is not
less than the size of fixparam struct + (numap * src_hostlist structure)
Change-Id: I2dc596f91bc49ccf0327062aa6732cd072d52085
CRs-Fixed: 2139436
The lim_deauth_tx_complete_cnf and
lim_disassoc_tx_complete_cnf are called in
data path softirq thread.
The lim_process_deauth_ack_timeout are
called in pe context in scheduler thread.
Both thread will call lim_send_deauth_cnf to
free lim.limDisassocDeauthCnfReq.pMlmDeauthReq.
Fix by posting WMA_DISASSOC_TX_COMP and
WMA_DEAUTH_TX_COMP to scheduler thread.
Let lim_disassoc_tx_complete_cnf and
lim_deauth_tx_complete_cnf run in correct
PE thread context.
Change-Id: I83a4ad741da46aa907603ae587c74042730b67bd
CRs-Fixed: 2143794
With current implementation in case of an SSR/PDR threads that are
waiting on events will only get purged after the wait timeout has
occurred, increasing the recovery time for the driver. Utilize new
APIs that maintain a list of events. In case of an SSR/PDR
forcefully set these events.
Change-Id: I83b4f576a65f8da5762288ac8dfccdef7d05d82a
CRs-Fixed: 2045156
Allow SAP to come up on DFS channel in STA+SAP concurrency mode
only when g_sta_sap_scc_on_dfs_chan enabled in ini file and also
disable chan_switch_hostapd_rate_enabled when force SCC is enabled.
CRs-Fixed: 2133958
Change-Id: Id1333a49d0538eb4ccfaf3c8498e9ca06671de02
There is a possibility of user to turn-off SAP while SSR is
in progress, leading framework to show SAP as turn-off though
SAP is still beaconning, after succsessful SSR.
Changes are done to make sure driver and framework are in sync.
Change-Id: Ic3cd1eebb23482e9cebf04683533face178698b4
CRs-Fixed: 2137646
Current open and close session APIs mainly defined in HDD, SME, and SAP
modules are not proper. They require some design changes to maintain the
consistency.
In order to achieve the goal of making symmetrical design for open
and close session logic, refactor existing API in HDD module.
CRs-Fixed: 2147971
Change-Id: Icdf8b0f99bc9fb828f7c68a32e5d25652baa8a17
Current open and close session APIs mainly defined in HDD, SME, and SAP
modules are not proper. They require some design changes to maintain the
consistency.
In order to achieve the goal of making symmetrical design for open and
close session logic, refactor existing API in SAP module.
CRs-Fixed: 2147969
Change-Id: Iccc5ddd2b14ec2b27e6746a211edd10ec06ad434
Current open and close session APIs mainly defined in HDD, SME, and SAP
modules are not proper. They require some design changes to maintain the
consistency.
In order to achieve the goal of making symmetrical design for open and
close session logic, refactor existing API in SME module which could
serve as stepping stone for SAP module and HDD module changes.
CRs-Fixed: 2147968
Change-Id: If39d191084a9f3f58b88f36d71cf42878a43b484