When hdd_trigger_psoc_idle_restart is called from hdd_open,
if the process has some signal pending, pld_idle_restart
may return back before finishing start_modules. If keep running
in hdd_open, when creating vdev it may access invalid
pdev.
In hdd_open, change to return failure if idle_restart returns
error.
Change-Id: I454d421d0758dd4e90c4b4fba1f65096c0834446
CRs-Fixed: 2476316
Auto usercase allow AGO to start on DFS channel.
We need to do similar CAC allow/disallow check in GO mode
as we do in SAP mode. We should skip CAC as DFS master
functionality may be disabled based on INI configuration.
Merge the SAP CAC allow logic to GO interface.
Change-Id: Iba89b8b3f170d6ffe97f53198ad041e7ceb41b44
CRs-Fixed: 2474391
Fix out of bound issue in get pcl API where the
num of channels in the valid channel list can be
greater than the pcl list size, and can lead to
out of bound access.
Change-Id: Id3d34ff66c712bf310ae2689c43ce873f5c87fca
CRs-Fixed: 2475705
Currently the drivers blocks every simultaneous scan
that comes to the driver, and returns BUSY.
here if the STA SCAN which is low priority after connection
comes, and at the same time ACS has completed and the hostapd
tries to do a HT scan, it would get error as BUSY, and it
will try to scan again and again until successful or the timeout
happens. This will in turn delay the hotspot bringup as start
ap does not come until the hostapd does a OBSS scan.
Fix is to skip the check of simultaneous scan for SAP, and make
the priority of scan request high for SAP scan.
Change-Id: I5625a3e7c05f75238771ea1ec35b80ae5113bbc3
CRs-Fixed: 2471854
wpa_supplicant sends connect request with open auth and pmkid
when PMK caching is enabled and if it has PMK/PMKID cached.
Set rsn_auth_type to SAE when connect request has AKM as SAE
auth_type as open.
Set negotiated auth type to OPEN in SAE with pmk cache case as
open authentication going to happen. Similar fix is applicable
for FT-SAE. Handle the same.
Change-Id: I9ccc419bd439702041840b0194bb0622d7856255
CRs-Fixed: 2467813
If platform support dbs, 1st AP start on 5G DFS channel, 2nd
AP should be able to start on 2G on another MAC, no MCC will
happen.
If override 2nd AP from 2g channel to 5g, 2nd AP can't start.
Change-Id: Icee7a5c432e0b96d71b51685955d820b0f619c8d
CRs-Fixed: 2470807
When get station command received by driver, host is
filling rx_mpdus and fcs_error count into output station
info buffer but corresponding flags are not getting set
because of which user space is not able to parse these
values.
To avoid this issue, set corresponding flags for rx_mpdus
and fcs_error count in stainfo buffer.
Change-Id: I0801501d0ede15c9c818d677b5e85e47963f4cff
CRs-Fixed: 2477654
Firmware allocates memory as part of WMI_INIT_CMDID based on number of
STA vdevs and max number of vdevs. If we try to create more then
max limit then firmware will crash.
Added check to check for max limit before creating the interface.
Change-Id: I3e73c9f1b3c925465452a23ea5f25f47e4eb1ada
CRs-Fixed: 2468171
Host driver should exit if it fails to initialize
__cfg_global_store to avoid assertion hit.
Change-Id: I404e5da69cd2c4cf06d55a1d7a96d0aee1e5e4a4
CRs-Fixed: 2454969
Update default value of force max nss action OUI ini
to include AP that advertises rx nss as 1 before
connection and advertises rx nss as 4 in association
response and in beacons or probe responses immediately
after connection.
Change-Id: Ica6314547a2aa39d4887ac4231745d6a59cd6b0a
CRs-Fixed: 2466562
Driver is updating wiphy band capabilities incorrectly as
it is always updating 2G band as always supported, in case
if 2G band is disabled from ini "BandCapability", driver
should not update 2G band capabilities to wiphy.
To avoid above issue, add a api to check if 2G band is
supported and then only update 2G band capabilities to
wiphy.
Change-Id: Ib921fa106158d93bfdb7aa57cfd5aa4370fab7d8
CRs-Fixed: 2470067
Array sta_to_adapter of hdd_ctx is accessed from several functions of
NAN and softap without bound check which can lead to out of bound read
or write access.
To fix this, add range check for sta_id.
Change-Id: I0b8c4e8bce26c6514df489c3305000691c7e1fe0
CRs-Fixed: 2456954
qcacld-2.0 to qcacld-3.0 propagation
This change adds support for driver supported TCP
delayed ack to increase TCP RX performance in
third-party platform which does't support kernel
TCP delayed ack feature.
TCP delayed ack is dependent on count and timer
values. Whatever is achieved first will trigger
sending TCP ack.
This feature can be controlled through ini values.
gDriverDelAckTimerValue - timer value in ms
gDriverDelAckPktCount - delayed ack count
gDriverDelAckEnable - enable/disable feature
Change-Id: I8105bbb90965295b5a4aefeb00d344a90155974d
CRs-fixed: 2414224
Optionally set by userspace to request the driver not to resume
beacon reporting after a pause is completed, when the
QCA_WLAN_VENDOR_ATTR_BEACON_REPORTING_OP_TYPE is set to
QCA_WLAN_VENDOR_BEACON_REPORTING_OP_START.
If this flag is set, the driver will not resume beacon reporting
after beacon reporting pause is completed. Userspace has to
send QCA_WLAN_VENDOR_BEACON_REPORTING_OP_START command again in order
to initiate beacon reporting again.
If this flag is set in the recent
QCA_WLAN_VENDOR_BEACON_REPORTING_OP_START command, then in the
subsequent QCA_WLAN_VENDOR_BEACON_REPORTING_OP_PAUSE event (if any)
the QCA_WLAN_VENDOR_ATTR_BEACON_REPORTING_AUTO_RESUMES shall not be
set by the driver.
Change-Id: I371a218cb513dcb077b7df675c549818c2b657b2
CRs-Fixed: 2466480
In order to process QCA_NL80211_VENDOR_SUBCMD_BEACON_REPORTING
vendor command, driver sends remove beacon filter cmd to fw to
allow fw to send all beacons of connected AP to driver.
But in some cases fw may wakeup host in wow mode.
To avoid these cases, with this change beacon reporting feature
will use WMI_VDEV_PARAM_NTH_BEACON_TO_HOST
command to FW instead of WMI_RMV_BCN_FILTER_CMDID
With WMI_VDEV_PARAM_NTH_BEACON_TO_HOST, in case of active reporting,
fw should send all beacons of connected AP to HOST
and also no wakeup of driver should happen in wow mode.
Change-Id: I9d0e255a6d4accb523bf4613146574239e7e0d09
CRs-Fixed: 2471627
In __spectral_scan_msg_handler(), payload section of input data is
type casted to driver internal structure spectral_scan_msg without
validating payload length which can lead to kernel info leak
if the payload length is less than size of spectral_scan_msg.
To fix this, avoid type-cast and return error if payload length is
less than size of spectral_scan_msg.
Change-Id: Ie7e74cc2cdcf8136582e81ffc3a088fd5a881dc9
CRs-Fixed: 2468493
Currently the driver checks MCC/SCC with the present connections,
and band interference in restart case of both SAP, and P2P-GO,
which can lead to p2p-go fail, as supplicant which is the
initiator of the switch channel does not care about MCC, and wants
the driver to restart the p2p-go in the channel given.
Fix is to overide the checks for P2P-GO only, and restart the
vdev in the given channel by supplicant.
Change-Id: I5db1da5452272696d80128e16b9e0ee50aa0de28
CRs-Fixed: 2466292
Propagation from qcacld2.0 to qcacld3.0.
The WMI CMD and EVENT of "get antenna isolation" are already defined,
but not used before in qcacld3.0.
Now, The host driver uses vendor command to get this information
instead of iwpriv command in qcacld-2.0.
The attribution of this feature is already defined in file
"qca_vendor.h". The name is "QCA_WLAN_VENDOR_ATTR_ANTENNA_ISOLATION".
So host driver will use vendor command
"QCA_NL80211_VENDOR_SUBCMD_GET_HW_CAPABILITY" to get the information
from lower layer.
Change-Id: I915768f622ddc9a70a95ce4fe952f19917a8f901
CRs-Fixed: 2447360
When ini acs_with_more_param is configured as 1, more params should be
added into ACS calculation process. Currently, even acs_with_more_param
is set as 1, mac->sap.acs_with_more_param is still 0 and no params are
added to ACS calculation process.
Make mac->sap.acs_with_more_param change as ini acs_with_more_param.
Change-Id: I4ced3b1d7d07c0f919183df42191e51ba66b90e8
CRs-Fixed: 2458086
Add QCA_LL_PDEV_TX_FLOW_CONTROL for both
QCA_LL_LEGACY_TX_FLOW_CONTROL and QCA_LL_TX_FLOW_CONTROL_V2
disabled platform, avoid frame drop in driver which leads to bad TCP
TX throughput. Change NUM_TX_QUEUES to 5 for this case to avoid invalid
memory access in wlan_hdd_netif_queue_control().
Change-Id: Ifa649e31a41d1bf89eadc8cc7e9520f0e27b9fe4
CRs-Fixed: 2466996
Fix cfg80211_ops.set_tx_power invalid bssid issue. User could set
txpower via cfg80211 interface.
Change-Id: Ie103a45e426b920846b8e4d23c4995ce660dde70
CRs-Fixed: 2468749
In lte coex case, when ini gEnableSapInternalRestart set to 1,
driver will indicate WLAN_SVC_LTE_COEX_IND message to upper layer,
then upper layer will restart sap, driver also will do inetrnal sap
restart in this case, this will cause duplicate sap restart.
Add ini gEnableSapInternalRestart check when indicate
WLAN_SVC_LTE_COEX_IND message to upper layer.
Change-Id: I045f8c40d1931aef088a2dbc700f6ae2706a3c79
CRs-Fixed: 2469012
Add per module logging macros without function/line info
to avoid adding function/line info where it is not required.
Change-Id: I0bd9248122b4f49274ee05a225ce6f880fede0cb
CRs-Fixed: 2468414
Do not start idle timer for epping mode when starting.
Deinit bus bandwidth and replenish timer when stopping, otherwise,
there will be resource leak.
Change-Id: Ib596f51445b739acd4551640b73270fd7693eea1
CRs-Fixed: 2464089
Wiphy updates band in insmod time. When wiphy is
registered, updating wiphy band a second
time sets chan_flags of wiphy to all zeros. That
results wrong wiphy chan_flags in
hdd_send_wiphy_regd_sync_event.
Add wiphy registered judgement in
wlan_hdd_update_wiphy_supported_band.
Change-Id: Iac094eea5ac2abcf068de7a35f00bdbf892e55a4
CRs-Fixed: 2452965
eCsrAuthType is the enum of AKMs to be used during connection.
So the name eCsrAuthType is misleading as akm and auth algo are
different.
Also the Linux Coding Style doesn't allow mixed-case names and
so-called Hungarian notation, so rename the enum eCsrAuthType to
be compliant.
Change-Id: I35e18d1f84babd0ef2928ae9d7258028d4c9b3c5
CRs-Fixed: 2463813
For vendor command QCA_NL80211_VENDOR_SUBCMD_ROAM with sub command
QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SSID_WHITE_LIST, NULL SSID with
NULL terminal can be accepted since it only requires non-zero
buffer len. Should only accept buffer len greater than 1.
Change-Id: I87144d4bf169e637756a4715c7a596c32f49dc36
CRs-Fixed: 2454035
Ini parameters gAllowMCCGODiffBI, gEnableMCCMode,
gEnableMacAddrSpoof are getting used before parsing the ini
conf file which is resulting in invalid parameter values.
Based on these invalid values wiphy parameters are getting
updated resulting in invalid wiphy configuration.
To resolve this issue, update these wiphy parameters after
ini conf file is parsed.
CRs-Fixed: 2457077
Change-Id: I20c14e7caeb0c0ad27ede5452e7d055ec2500026
The Linux Coding Style doesn't allow mixed-case names and
so-called camelcase notation, so rename the statusCode to be
compliant with the coding style.
Change-Id: I98e0af710401a9718bdc1402617253eb970c5861
CRs-Fixed: 2463825
The Linux Coding Style doesn't allow mixed-case names and
so-called Hungarian notation, so rename the identifier pBssDesc
to be compliant.
Change-Id: I0980de75bbaaeb1eee9321621da1f3ff90e09188
CRs-Fixed: 2463446
Currently in the driver, the max rates that are being sent to the
userspace do not take into account the value of the ini
enable_vht20_mcs9. This ini state that the connection doesn't support
MCS9 rates for vht20. As this is not taken into account, the rates
being sent are incorrect.
Add a check inside hdd_report_max_rate to check the value of the ini
before filling up the max MCS index.
Change-Id: I39742b7cc6a18c3d7693a6efef05987ec0e80cec
CRs-Fixed: 2453759
In send sta authorized event api, there is a possibility
of use of uninitialized use of structure variable mask
which may result in an invalid value of the mask.
To avoid uninitialized use of the structure variable,
mem set structure variable to zero before using it.
Change-Id: I2c8bbac949b55fd18928c5dca8744147b0a45415
CRs-Fixed: 2423878
Currently in case of CSA announcement with channel switch mode 1,
host wraps "switch wrapper IEs" of the current operating channel
for target channel. This is not expected. Driver should send
fills information about target channel in the channel switch
wrapper IEs.
Fix is to fill IE in host and ignore the IE from hostapd.
Change-Id: Ie2447fa7affdf8211a46877e0d8b0e41796f0cc3
CRs-Fixed: 2444679
When MAC address is changed dynamically and dump station
command is invoked driver is not giving the updated MAC
address as the output of the command.
To address this issue give the correct MAC address from
net device.
Change-Id: I4effb1fe4d52f35c0df7beb7884e7943215d73f8
CRs-fixed: 2463418
Add qtime & host_time in __hdd_wlan_tsf_show, so that "cat tsf" will
print out qtime and host_time at the instant.
Change-Id: I4da440f92b7415440f9064a49777c3c3680ac1b1
CRs-Fixed: 2461503
The MCL qcmbr ioctl process has duplicated copy_from/to_user actions,
to make sure MCL and WIN qcmbr command processing converge, remove
the redundant copy_from/to_user in wlan_hdd_ftm.c.
This change also fixs FTM test fail issue.
Change-Id: Ie740c3dd1774f5a2bf8f928814d58fb310a7a76d
CRs-Fixed: 2436024
In some cases i.e. after successful roaming, NUD FAILURE is
triggered due to no ARP REQ packets are sent out by netdev.
Currently, we do not have any information to verify if ARP
packets are not sent because netdev queues are paused or not.
Retrieve the netdev queues status in case of NUD FAILURE to
verify if TX is stopped due to paused queue.
Change-Id: I324afdc349cf6b028471a21ed89bc702f99e5f99
CRs-Fixed: 2441513
Currently with the support of Blacklist manager
component, all the blacklist, avoid list, RSSI-REJECT
list is maintained by the BLM, hence the filter logic
of the blacklist APs in the scan component is not
required.
Cleanup the blacklist BSSID APIs, and related functionality.
Change-Id: I4c8283d2c5e4ca66c24a25d31a74026510bb452c
CRs-Fixed: 2464188
Wait for LFR 2.0 based Roaming sequence to complete before
processing disconnect command from cfg80211.
Change-Id: Ib596aa56ccc322f5ba87b46685bbc299793c9d5b
CRs-Fixed: 2464112
As part of start_ap or connect_start to teardown active tdls peers
hdd_notify_teardown_tdls_links is called with argument vdev. But
TDLS might not be enabled on that vdev. With recent changes,
osif_priv object is initialized as part of tdls_vdev_init.
For the new interface if TDLS is not initialized then osif_priv
object will not be found and TDLS peers are not removed.
Change-Id: Idcf690bba2766664700a4851d390ee620f2fe73a
CRs-Fixed: 2460108
Currently the driver does not populate the score config
param for 5ghz connection, hence the nss for STA in 5ghz
connection becomes zero by default, and thus results in
a lower score for that BSSID, which should not be the
case.
Fix is to populate the vdev nss 5ghz for STA score config,
which would result in correct nss param.
Change-Id: I5276446caeaf9e68e2e422c403cfd05e68b58545
CRs-Fixed: 2463288
Add support for roaming in case the driver
detects a nud failure. The STA then would roam
to another BSSID, else if the roaming gets failed
the STA would remain connected to the same BSSID
as connected before.
Change-Id: Idbc99b0ce2f9cacd97564dd8cf9892120958eda2
CRs-Fixed: 2461675
Link BLM exposed APIs to the following:-
1. csr_get_scan_result:- Link this API with filter bssids in
the reject ap list maintained by the blacklist mgr.
2. lim_assoc_rej_add_to_rssi_based_reject_list:- Link this API
with the the blacklist mgr add bssid to reject list to add the
OCE and BTM related assoc rejects.
3. Userspace avoid list parsing logic for the userspace to set
the BSSID as avoided.
Change-Id: Id51ffb80cea3f845fefe14db25d0f7acda6ea0f3
CRs-Fixed: 2461281
Few IOT APs advertise reduced NSS capabilities on ending
up in bad state. These APs can later recover to support
the actual NSS capabilities. In this scenario, when STA
initiates connection to these APs, which are in bad state,
reduced NSS capabilities is advertised. STA cannot later
upgrade NSS capabilities to the minimum of STA max NSS
capability and APs actual NSS capability, once AP recovers.
Fix is to advertise max NSS capability during connection
with these IOT APs based on vendor OUIs and downgrade if
AP still advertises reduced NSS capability in association
response.
Change-Id: I49ea13534b1a44fd9ffadd1e8fb44e9d782147c4
CRs-Fixed: 2453938