Even though the bitrate is greater than zero, because of
incorrect conditional check, error log "Invalid bitrate" is
getting printed.
Hence, fix this by adding proper conditional check.
Change-Id: I2076c7a90e735e4a278f4d5894e51abc8bd091c0
CRs-Fixed: 2250687
qcacld-2.0 to qcacld-3.0 propagation
After station is associatied in VHT20, update station info
txrate bw field for VHT20 case when cfg80211_get_station is
triggered
Change-Id: Ia3547083d5f4fb031fd186234b2d13126d8a9712
CRs-Fixed: 2086316
qcacld-2.0 to qcacld-3.0 propagation
After station is associatied in HT20, when cfg80211_get_station
is triggered, update station info txrate bw field for HT20
Change-Id: Icc2c5f318d7812696202705edda17c7352f66fba
CRs-Fixed: 2121005
Add spectral scan feature flag which can be
used to control the feature through build options.
Change-Id: Ide13e958cffff610626c891041307b40ac94c47d
CRs-Fixed: 2232167
wlan_hdd_sap_pre_cac_success run in the work thread
scheduled by sap_pre_cac_work.
But hdd_stop_adapter will call
cds_flush_work(&hdd_ctx->sap_pre_cac_work);
That means the work waits itself to finish.
The Fix is to add flag to hdd_stop_adapter
to identify the "stop" running in the work handler
and skip the "sync" cancel the work self.
Change-Id: I875c2f14ffd54272fc9ea0df1cecc6dd1171e310
CRs-Fixed: 2252085
Currently the function typedef wma_tgt_cfg_cb is defined with two void
pointer parameters. However the types of the two parameters are known
to both the sender and the receiver, so fully specify the types of
those parameters.
Change-Id: I7cf7178015084599061b123da7b5f1f453ec5353
CRs-Fixed: 2254954
Per the Linux coding style "mixed-case names are frowned upon" so
rename typedef tHddHandle to hdd_handle_t to align with the Linux
typedef naming convention.
Change-Id: I34849ed819b31564ca561a1718083793bf30a0a3
CRs-Fixed: 2254953
Turning on strict type checking flagged multiple of instances of
hal_handle being declared incorrectly, so fix them.
Change-Id: I8781c7e2839dcc3532b3aca066802db39f989e07
CRs-Fixed: 2254951
Currently hdd_pre_enable_configure() calls cfg_set_str() to update
WNI_CFG_STA_ID in the cfg database. Buf cfg_set_str() is an internal
MAC API which should not be called by HDD, and this code fails to
compile when strict parameter checking is enabled because HDD is
passing a tHalHandle to a function which expects a tpAniSirGlobal.
Update hdd_pre_enable_configure() to instead call sme_cfg_set_str().
Change-Id: Ic3f249f18319c3e54786938f76fe61b2af37f25f
CRs-Fixed: 2254950
Currently HDD is directly calling csr_roam_get_wpa_rsn_req_ie() and
csr_roam_get_wpa_rsn_rsp_ie(). That is a layering violation since HDD
should be calling SME APIs; CSR APIs are meant to be called by
SME. And SME already exposes two APIs which, in turn, call those CSR
APIs. However those SME APIs, sme_roam_get_security_req_ie() and
sme_roam_get_security_rsp_ie(), are defined to take an extra secType
parameter which is then unused. To clean up this mess modify the SME
APIs to have the same naming and parameters as the CSR APIs and update
HDD to call the SME APIs.
Change-Id: I0ba2f056e089818ab04a8d421e3d8c571e312831
CRs-Fixed: 2254949
Use upstream extended feature flag NL80211_EXT_FEATURE_DFS_OFFLOAD
for DFS offload support.
Change-Id: I26f4998c7760d8913d1311e459eb873685279681
CRs-fixed: 2233627
Add new driver command to dynamically configure concurrent
active and passive dwell time parameters.
Change-Id: Ib758786349f8889600cab34609f5c7763fc36251
CRs-Fixed: 2230861
Add HDD flow pool map and unmap functions. These are registered
with the policy manager (via CDS) so that lithium_dp vdev flow pools are
created/deleted when vdev become active/not-active under the control of
the policy manager
Change-Id: I1ff6b3bafa78df68fbf9a221ac0d001bd5a06d8d
CRs-Fixed: 2240815
Currently the firmware supports FILS by default, and the
kernel and driver have dependencies on the kernel version
for FILS support. The PMK info i.e the PMK length and the
PMK itself is sent to the firmware as part of roam
scan offload params, and are filled from the PMK
received from the CFG layer via csr_roam_set_psk_pmk.
The PMK and its parameters are received via a vendor
command, and called via ops wlan_hdd_set_default_mgmt_key.
With the presence of FILS feature, the pmk is filled
via hdd_fill_pmksa_info(), which fills the PMK,PMK
length to the pmk_cache. It is called via ops
wlan_hdd_cfg80211_set_pmksa. But in the NON-FILS case,
the PMK, PMK length received from the CFG layer is NULL
and zero respectively, and hence the firmware which expects
a valid PMK and PMK length gets a PMK as NULL , and the
PMK length as zero, which will lead to deletion of the
pmk received earlier via vendor command, also a fresh 8-way
handshake from the HOST, rather than a 4-way handshake
from firmware if the PMK-ID for that particular AP(BSSID)
matches the PMK-ID in the AP.
Fix is to fill the params of PMK, PMK length in the NON-FILS
case too by copying the params received previously via the vendor
command, where the params are stored in the session itself.
Hence it will fulfill the requirement of the PMK, PMK len
from the firmware, and lead to a faster handshake process
while re-associating.
Change-Id: I4c91cac6bad400c8fa58b2a6ba2b282a3b7f1620
CRs-Fixed: 2243070
When acs_policy is enabled and STA is already up on some 5Ghz channel,
SAP is coming up on the same 5Ghz channel as expected but in 20Mhz even
when bandwidth given by hostapd is 80Mhz.
Start SAP on same channel as STA but in 80Mhz instead of 20Mhz.
Change-Id: Ie5dc06844f867d32796706cdcc190d1cb1b1d2fe
CRs-Fixed: 2196229
Reduce the log level for some of the scan & connect related logs from
info to debug.
Change-Id: I19c41af47137cf1951834b31c47c73d6d5f4937e
CRs-Fixed: 2252968
To align with the Linux Kernel coding style replace typedefs
cds_context_type and p_cds_contextType with a reference to the
underlying struct.
Change-Id: Ifc85a9bbecd29614835ed9e61ab143d0387e82b0
CRs-Fixed: 2250667
Thread sleep since it uses mutex in SME register frame, one low rate
case which change interface fail since SSR in progress and then P2P
interface up fails. Solution is stopping ap after register frame.
Change-Id: I3831afb2cb61c9d40aa6945def3e0a169a4115a0
CRs-Fixed: 2243849
While processing DO_ACS vendor command session context, which is
of type union holds either station's or SAP's session, is updated
without checking adapter’s mode. This may lead to corrupt station's
session context if DO_ACS is invoked with station adapter.
Validate adapter mode and process DO_ACS vendor commands only if the
mode is SAP/P2P_GO.
Change-Id: Id99ba126fcfa1f06f68b89d4627c029948a201c5
CRs-Fixed: 2237661
Set the band end channel to SRD channel range so that if the SRD
channels are enabled then get channel list command returns the
SRD channels in the output.
Change-Id: I26ec92cf842e62e2b113f38dc4ac4d1c5d7cbe22
CRs-Fixed: 2161849
Presently, gAP11ACOverride is used to do 11ac override for both SAP and
P2P GO. So, enabling 11ac override in SAP and disbaling it in P2P GO or
vice versa is not possible as per current design. This causes issue in
the latest framework where 11ac override is not needed for SAP but is
required for P2P GO.
Break gAP11ACOverride into 2 inis, one for SAP and one for P2P GO to
have better control over the functionality.
Change-Id: I3809b91a80077d6d9958fe8e0bb770f960b691d6
CRs-Fixed: 2240387
In SSR case, stop BSS fail with P2P GO since session invalid, and
then blocking to start next P2P GO.
Change-Id: I6bb387480e6a08e082771598b649c5ac240aff2e
CRs-Fixed: 2244698
In wlan_hdd_pld_remove(), a global mutext is grabbed before setting the
global "unloading" flag. In the case of __hdd_open(), this flag is
checked before also grabbing the same lock. Ultimately this can lead to
deadlocks when other shared locks are involved. As a short-to-medium
term work around, set the unloading flag before waiting for external
threads to exit. After external threads have exited, then grab the lock
to avoid deadlocking with external threads like those invoking
__hdd_open(). Effectively, this does a stop-and-flush on external
threads into the driver before unloading.
Change-Id: Iaaf52d730807abd9a99950970988ec58a1abb87d
CRs-Fixed: 2251271
In function hdd_wlan_start_modules, when hdd_configure_cds
return error, driver does not free memory buffer
hdd_ctx->target_hw_name in hdd_update_hw_sw_info, which is
allocated when the driver is in the open state.
Fix is to free the memory for hdd_ctx->target_hw_name buffer
and set to NULL.
Change-Id: Ib8bee8d4df51404e848cfd4da628ebf3f7ff718d
CRs-Fixed: 2159490
There is a possibility of NULL pointer access in
hdd_wlan_get_version api as the check for the version
pointer and version len is incorrect. If the version pointer
is NULL and version_len is non zero, it will result in NULL
pointer derefernce.
To address this issue update the NULL pointer check to return
in both the cases whether the pointer is NULL or the version_len
is NULL.
Change-Id: Iee3ef6d31fac1b5ede4ac3a762157d3c48d5ffc5
CRs-Fixed: 2242148
Remove cds_set_load_in_progress so that the
hdd_wlan_stop_modules can do PLD power off
for FTM mode.
Add con_mode_flag checking for HDD context access
protection.
Change-Id: Ie48443579fcb692fcc806cb9b6bf5782d7764c9f
CRs-Fixed: 2246876
There might be a race condition between wlansap_stop_bss and
wlansap_start_bss. The tx_flow_control_timer might be created again
after released by hdd_stop_adapter which might cause the memory leak
issue.
Add mutex lock to protect the wlansap_start_bss in the function of
wlan_hdd_cfg80211_start_bss to fix incorrect state of fsm.
Change-Id: Icae4508450f6e1cc13210d49edaf03a8fbd39fe4
CRs-Fixed: 2239832
Address the following issues in wlan_hdd_wext.c:
CHECK:'recieved' may be misspelled - perhaps 'received'?
CHECK: parenthesis alignment in iw_get_policy_manager_ut_ops
CRs-Fixed: 2245341
Change-Id: I25c1e4310739e934d49dc7b4fc3890e5ab16e5e0
In the function hdd_hostapd_sap_event_cb, stainfo is obtained
from hdd_get_stainfo(). This stainfo is dereferenced later to
retrive dhcp_phase later. If the stainfo returned from the
function hdd_get_stainfo is NULL, then a possible NULL pointer
dereference could occur.
Add check to validate stainfo is not NULL.
Change-Id: Ia428142b6ae2545528c5998dcde63845ca592b56
CRs-Fixed: 2233870
Remove the redundant tx flow control register in sap event cb, which has
been registered already when adapter started.
Change-Id: Ia48249ed6b6de0a1af642d920f9589c600015ed3
CRs-Fixed: 2239832
This reverts change If06be4c9627eb345fb52609351417b155d336a4e for the
following reasons:
1) hdd_debug_domain_set() should never be called outside of module
start/stop
2) It effectively reverts I2fade59d1e4a27620cecadb91f69866e79c85612
Change-Id: Id132c516dd2600110912539df37eb1932730fef1
CRs-Fixed: 2248600
In hdd_we_set_11d_state(), @sme_config is accessed immediately after
being freed. Avoid accessing freed memory.
Change-Id: I7ad19f6846bce1d0f99b7712f1036c81ea363815
CRs-Fixed: 2247652
hdd_stop_adapter frees beacon resouce but doesn't clear SOFTAP_INIT_DONE
flag. If SSR happens in this time, NULL pointer dereference will occur.
Clear flag in hdd_stop_adapter and check NULL pointer when use beacon.
Change-Id: I14be81a4e5fb498948f7ceec9138e9b1c797af1e
CRs-Fixed: 2232511
It will reject channel switch command for STA+SAP concurrency case
since not force set channel switch.
Change-Id: Id032d5f931aa78cf24fda7e1fc1cc1d8ec58008f
CRs-Fixed: 2246121
If any userspace request is posted using request manager,
memory is allocated for that request using hdd_request_alloc
api. Now when the response of this request comes in the
registered callback, if this response is NULL then callback
returns without doing hdd_request_complete and eventually
request gets timed out and memory is released through
request_put. If the con_mode is changed before this time out
occures, con_mode_handler will try to stop_modules and will
result in mem leak detection as the memory for the request
is not released yet.
To address this issue in con_mode_handler, wait for all the
user space requests to complete before trying to stop modules.
Change-Id: If524580e420d107a1fe6d17b75d4c13e4feb96e1
CRs-Fixed: 2244739
while parsing the QCA_WLAN_VENDOR_ATTR_SCAN_IE there can be possible
overflow overwriting the next ie pointers.
Hence validate the ie length received before memcpy.
Change-Id: Ic503331e6ee35bad5b3b6518cb140914cda2a447
CRs-Fixed: 2231992
Previously change "qcacld-3.0: Use enum QDF_GLOBAL_MODE", Change-Id
I0e806e87a4c4828279dee83450b1fc20a236c9d3, replaced all instances of
tQDF_GLOBAL_CON_MODE to QDF_GLOBAL_MODE in the qcacld-3.0
project. However since tQDF_GLOBAL_CON_MODE was originally defined in
a common project, and not all references to it could be immediately
removed, a legacy definition was left with the expectation that it
would be removed when all references to it had been updated.
Unfortunately a new instance of using tQDF_GLOBAL_CON_MODE has been
subsequently added to the project, so replace it with QDF_GLOBAL_MODE.
Change-Id: Ib8584f1327631d2280666822fa45118c210a3c39
CRs-Fixed: 2245248
Previously change "qcacld-3.0: Use enum QDF_OPMODE", Change-Id
Ic6f663dac11a100f168b2626c7c0fbcaccbfca4f, replaced all instances of
tQDF_ADAPTER_MODE to QDF_OPMODE in the qcacld-3.0 project. However
since tQDF_ADAPTER_MODE was originally defined in a common project,
and not all references to it could be immediately removed, a legacy
definition was left with the expectation that it would be removed when
all references to it had been updated. Unfortunately new instances of
using tQDF_ADAPTER_MODE have been subsequently added to the project,
so replace them with QDF_OPMODE.
Change-Id: I71cead84151cc0411f7cc5cc13a87a281e7502c0
CRs-Fixed: 2245247
Remove support for enabling/disabling SIFS burst mode,
SAP DFS channel SIFS burst and SIFS burst duration through
ini parameter as well as through IOCTL
Change-Id: I3d43afa3c0c85eef470a29b9e7ad812079666278
CRs-Fixed: 2238175
DISA head files include lots of not used public head files, and cause
compilation issue when disable PMO feature flag.
Change-Id: I287f845a3e9f923d042463c34abaedadb905d3b2
CRs-Fixed: 2243947
These board information are stored in the board file while the
calibration process. WMI service ready event will now carry them for host.
Append these board version information to the firmware version string.
Change-Id: Ieb5bc480bd0c2e387fcf6990dd192741f0b7cd6b
CRs-fixed: 2218963