Commit Graph

15710 Commits

Author SHA1 Message Date
Ashish Kumar Dhanotiya
96b4c94294 qcacld-3.0: Do not allow sched scan command in monitor mode
Currently there is no check for the monitor mode
interface in sched scan start/stop commands.
Add a check for monitor mode in sched scan start/stop
commands and do not allow sched scan stop in case of
monitor mode.

Change-Id: I316c3156c25a9b6e9c3d35aaca174a4f1f03f8f9
CRs-fixed: 2530755
2019-11-14 12:13:41 -08:00
nshrivas
3500d896d7 Release 5.2.0.157
Release 5.2.0.157

Change-Id: I223817abf443e2528add4aba9421f1d60608e2e7
CRs-Fixed: 774533
2019-11-14 10:43:08 -08:00
Abhishek Ambure
5ec0d66692 qcacld-3.0: Populate OFDM data rates to firmware in 11ax mode
In 11ax mode the extended rate IEs are not sent to firmware as part
of peer assoc. So if 11ax AP Doesn't advertise the OFDM rates in 2.4ghz
rates IE while include them in extended rate IE, the firmware doesn't
have the OFDM rates.

Thus once the AP switch channel to 5Ghz, as OFDM rates are not set the
Firmware asserts.

To fix this in 11ax send extended rate as well to firmware in peer assoc.

Change-Id: I059a35828d214bc843ad8ebab720fd695bc7f511
CRs-Fixed: 2561566
2019-11-14 10:43:07 -08:00
Alan Chen
dd4e7e3295 qcacld-3.0: Create a new function for adapter reference verification
The current HDD callback in hdd_rx_flush_packet_cbk() does not validate
the adapter context properly. Instead of verifying the adapter magic,
verify the adapter itself is still valid through the adapter list.
Create a new function hdd_get_adapter_by_reference() to verify the
adapter reference.

Change-Id: I468bd55b2318635ad89087e6c6ad6097df68d405
CRs-Fixed: 2563654
2019-11-14 10:42:59 -08:00
nshrivas
4461014f01 Release 5.2.0.156Z
Release 5.2.0.156Z

Change-Id: Iad0a6e86f4fc3637a242c7618e8451c69c0ccfc2
CRs-Fixed: 774533
2019-11-14 07:47:23 -08:00
Abhinav Kumar
9ff4490dcc qcacld-3.0: Fix null ptr dereference in wma_print_wow_stats
wma_print_wow_stats does not do null validation for pointer vdev
returned from call to function wlan_objmgr_get_vdev_by_id_from_psoc
which can lead to null pointer derefrence.

Add NULL pointer check for vdev in wma_print_wow_stats.

Change-Id: I4fae47b303436bf9f2a4768995cea7640bc6feab
CRs-Fixed: 2564073
2019-11-14 07:47:23 -08:00
nshrivas
3de9c892dc Release 5.2.0.156Y
Release 5.2.0.156Y

Change-Id: I48e12707fcbd345f7d3772405e2774f77c8e7fcf
CRs-Fixed: 774533
2019-11-14 06:00:35 -08:00
Amruta Kulkarni
46eaac22aa qcacld-3.0: Add feature protection when calling MFPCapable
Enable WLAN_FEATURE_11W feature protection for MFPCapable,
MFPEnabled,MFPRequired.

Change-Id: I4db739a1b76a2ba11e497703ac49da10f0df770c
CRs-Fixed: 2558922
2019-11-14 06:00:34 -08:00
Tushnim Bhattacharyya
6c40b112ce qcacld-3.0: Replace channel id with frequency in ecsa indication
Replace channel ID with channel frequency in ecsa indication flow.

Change-Id: I1dd3148566e1da37a6f3fa71f1887e66f87f5d1c
CRs-Fixed: 2555384
2019-11-14 06:00:26 -08:00
Rajeev Kumar Sirasanagandla
a57c670729 qcacld-3.0: Add 6GHz support for VENDOR_SUBCMD_DO_ACS
As a part of 6GHz support, add support to parse and send channel
frequency (in MHz) for QCA_NL80211_VENDOR_SUBCMD_DO_ACS command/event.

Change-Id: I9475f9392c6a15b6dc470fbaa2f25c1f4baf0be5
CRs-Fixed: 2533689
2019-11-14 06:00:18 -08:00
Amruta Kulkarni
220ce5c328 qcacld-3.0: Fix uninitialized parameters
Initialize parameters with default values in wlan_hdd_update_phymode(),
csr_is_phy_mode_match()

Change-Id: I2b3b2aff09448776b5ef1d2cdc24b3e0abf3ec39
CRs-Fixed: 2559005
2019-11-14 06:00:11 -08:00
nshrivas
bfad2693d0 Release 5.2.0.156X
Release 5.2.0.156X

Change-Id: I367ef22ab2852f8e1a39ae0b891eb9eedb154acb
CRs-Fixed: 774533
2019-11-13 22:13:44 -08:00
tinlin
7167dc1dfd qcacld-3.0: Convert legacy channel usage
Modify the following API's code and parameters to make
sure it is using frequency instead of channel:

	csr_roam_set_bss_config_cfg

Change-Id: I92ffda4ab9fa66340aa1cd75f3fcbb3b3e36b27d
CRs-Fixed: 2563211
2019-11-13 22:13:44 -08:00
nshrivas
8865eb47ab Release 5.2.0.156W
Release 5.2.0.156W

Change-Id: If2df28ddd2529e5decf9a414edeaf1f4853aeb63
CRs-Fixed: 774533
2019-11-13 06:53:05 -08:00
Liangwei Dong
0e18c47d0c qcacld-3.0: Change channel to Frequency for acs_cfg fields
Change vht_seg0_center_ch and vht_seg1_center_ch in acs_cfg
struct to vht_seg0_center_ch_freq, vht_seg1_center_ch_freq
respectively.

Change-Id: Ie3378376e6f31c239157c8eaaf3ceb22d2e35073
CRs-Fixed: 2564065
2019-11-13 06:52:58 -08:00
Liangwei Dong
50d12dc273 qcacld-3.0: Convert to freq for acs->start_ch
Change acs->start_ch and acs->end_ch to acs->start_ch_freq
and acs->end_ch_freq respectively.

Change-Id: I105cd618970c739340df29d58f635d01a68754d2
CRs-Fixed: 2564018
2019-11-13 06:52:51 -08:00
gaurank kathpalia
0eddedfcc4 qcacld-3.0: ACS changes for 6ghz
Acs changes for 6ghz to change chan to frequency
in the spectral params structure.

Change-Id: Iffd348ac5c2457b313b702a92b340a258992e764
CRs-Fixed: 2564043
2019-11-13 06:52:43 -08:00
gaurank kathpalia
92b81ceb99 qcacld-3.0: Convert primary, secondary channel for acs cfg to freq
Convert primary, secondary channel for acs cfg to freq as part
of ACS 6Ghz changes.

Change-Id: I4f6220b39dae91df070b0764fa8b048cdc6ad00f
CRs-Fixed: 2555988
2019-11-13 06:52:36 -08:00
gaurank kathpalia
648adbafb9 qcacld-3.0: Refactor ACS channel code
Refactor ACS channel code to improve readability
and reduce the duplicate checks.

Change-Id: I00e354d6b564b06a9fe3537dcf2deb7517a9a919
CRs-Fixed: 2550621
2019-11-13 06:52:30 -08:00
nshrivas
9ff7d1f4cb Release 5.2.0.156V
Release 5.2.0.156V

Change-Id: I28c7da4371d15def7d97cddb62fdeeb37f03ff43
CRs-Fixed: 774533
2019-11-13 00:55:56 -08:00
Yeshwanth Sriram Guntuka
e6e60f89fd qcacld-3.0: Do client cleanup in SSR case for P2P GO
Reset adapter done for P2P GO as part of shutdown does
not invoke hdd_sap_indicate_disconnect_for_sta where in
cleanup is done and ap_active flag is reset to false.
After re init, if sta connection happens and driver
unload is triggered, bus_bw timer is not stopped as
part of station stop_adapter since ap_active flag is not
reset to false.

Fix is to invoke hdd_sap_indicate_disconnect_for_sta in
case of P2P GO cleanup during shutdown.

Change-Id: Ia832ccf4311bfdf202fcf01d3ab46023c0f3451f
CRs-Fixed: 2562839
2019-11-13 00:55:56 -08:00
nshrivas
c117c06e27 Release 5.2.0.156U
Release 5.2.0.156U

Change-Id: I8f93af37ccdc3ee704f33b4cd6c821be2c34d751
CRs-Fixed: 774533
2019-11-12 23:12:05 -08:00
nshrivas
885a2b9bca Release 5.2.0.156T
Release 5.2.0.156T

Change-Id: I9c9e97cd7db8217a155f0e30bf7880f58e907ecc
CRs-Fixed: 774533
2019-11-12 19:12:59 -08:00
hqu
ac3362db81 qcacld-3.0: Fix regression issue for htMaxRxAMpduFactor set in vht
5G HE80 mode tput will fail due to
"Change-Id: I8e2833a48ca5de0301634a88eb1a66002b4c9c20".

Fix is to set htMaxRxAMpduFactor with maxAMPDULenExp from
vht capability When STA capability is vht capability.

Change-Id: I6b3c2de0c772688e2b736a07528665e1f23eed94
CRs-Fixed: 2553371
2019-11-12 19:12:59 -08:00
nshrivas
bc84908f30 Release 5.2.0.156S
Release 5.2.0.156S

Change-Id: I1cf8337ee828f833a201c34a1f01e4ef211daad5
CRs-Fixed: 774533
2019-11-12 02:35:22 -08:00
bings
e063e4f155 qcacld-3.0: Convert legacy chan ID usage to chan freq
Modify the following 3 APIs' code and parameters to make
sure they're using frequency instead of channel ID:
   sme_get_reg_info
   wlan_hdd_get_channel_info
   hdd_update_channel_bw_info

Change-Id: I87ad6fb9cd9fcd7fe4e41e62a32e4954e93f8ba1
CRs-Fixed: 2554710
2019-11-12 02:35:14 -08:00
nshrivas
bc67fde4df Release 5.2.0.156R
Release 5.2.0.156R

Change-Id: I14c97aac87feaaf3f1dd1e9e0c7512b93db6f8a4
CRs-Fixed: 774533
2019-11-11 23:08:03 -08:00
Rakesh Pillai
f94b162ed0 qcacld-3.0: cdp: Convergence of cdp_l_flowctl_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged l_flowctl_ops
- register_tx_flow_control
- set_vdev_tx_desc_limit
- set_vdev_os_queue_status
- deregister_tx_flow_control_cb
- flow_control_cb
- get_tx_resource
- ll_set_tx_pause_q_depth
- vdev_flush
- vdev_pause
- vdev_unpause

CRs-Fixed: 2539748
Change-Id: I8ad4a20914c654b8e8aaf629dda7f673fdb110e4
2019-11-11 23:08:02 -08:00
Rakesh Pillai
4981a8f790 qcacld-3.0: cdp: Convergence of cdp_mob_stats_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged mob_stats_ops
- clear_stats

CRs-Fixed: 2539747
Change-Id: I5ee060b62d15380df4b8d15bb5709d700902aafd
2019-11-11 23:07:57 -08:00
Rakesh Pillai
84714471df qcacld-3.0: cdp: Convergence of cdp_ocb_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged ocb_ops
- set_ocb_chan_info
- get_ocb_chan_info

CRs-Fixed: 2539745
Change-Id: I7de53c48ec6b7f0c09be7c9cf642d8cf4f8eae78
2019-11-11 23:07:52 -08:00
Rakesh Pillai
82555082c9 qcacld-3.0: cdp: Convergence of cdp_throttle_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged throttle_ops
- throttle_init_period
- throttle_set_level

CRs-Fixed: 2539744
Change-Id: I0e1339ead92d66463d3b58ed9268c7194fd2bd27
2019-11-11 23:07:46 -08:00
Rakesh Pillai
ef35fab84c qcacld-3.0: cdp: Convergence of cdp_delay_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged delay_ops
- tx_delay
- tx_delay_hist
- tx_packet_count
- tx_set_compute_interval

CRs-Fixed: 2539742
Change-Id: I201d343f4ced3b861a65ddf78e10e66f786e5e91
2019-11-11 23:07:40 -08:00
Rakesh Pillai
a889ffa967 qcacld-3.0: cdp: Convergence of cdp_flowctl_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged flowctl_ops
- flow_pool_map_handler
- flow_pool_unmap_handler
- dump_flow_pool_info
- tx_desc_thresh_reached

CRs-Fixed: 2539738
Change-Id: I9b11e66d8c2644f16e0f2464c323798a4cba007a
2019-11-11 23:07:35 -08:00
nshrivas
76be14960f Release 5.2.0.156Q
Release 5.2.0.156Q

Change-Id: I2d44b87e3f9fa75e0534652994c763388edadaa2
CRs-Fixed: 774533
2019-11-11 16:44:09 -08:00
Pragaspathi Thilagaraj
483d70b71b qcacld-3.0: Validate hidden ssid after roaming to avoid disconnection
After roam synch indication is received, the driver compares the
SSID of the current AP and SSID of the roamed AP. If there is a
mismatch, driver issues disassociate to current connected AP.
This causes data path queues to be stopped and M2 to the roamed
AP from userspace will fail. The SSID of the current AP is
parsed from the beacon IEs stored in the connected bss
description. In hidden ssid case the SSID IE has 0 length
and the host receives unicast probe with SSID of the
AP in the roam synch indication. So SSID mismatch happens
and validation fails.

Check if the current SSID in the bss description is NULL.
If its NULL, get the SSID from the connected profile in csr
session.

Change-Id: I30c41b821c0fc506d763eb33f8bb706dd26b405a
CRs-Fixed: 2544915
2019-11-11 16:44:08 -08:00
nshrivas
4b9cad9628 Release 5.2.0.156P
Release 5.2.0.156P

Change-Id: I1354489de590a05e840260b1634b2e1191c882bd
CRs-Fixed: 774533
2019-11-11 15:15:47 -08:00
gaurank kathpalia
7944f32d2c qcacld-3.0: Make get_nss command compatible with hastings
Currently the command to get nss checks the max capability
of enable 2x2, and if the capability is 1, and the
hw mode is currently DBS, it lowers the nss capability
to 1 which is expected in helium, but not in hastings.

Fix is to check whether the device supports DBS 2x2
capability and then only downgrade the value of nss.

Change-Id: I18acef455c0790862ba786f87af776b65646aca6
CRs-Fixed: 2557587
2019-11-11 15:15:46 -08:00
Sourav Mohapatra
f43b308019 qcacld-3.0: Take dev_hold during iterating adapters
The existing API/macro hdd_for_each_adapter() iterates over the hdd
adapter list with the iterator pointing to each adapter. This iteration
is not safe when seen with respect to unregistration of netdev going in
parallel in other thread. In case the adapter is removed, the iteration
will result in NULL pointer dereference.

An example of this issue is seen when the following happens in parallel.
	1. del_virtual_interface -> hdd_remove_adapter -> removes node
	2. hdd_indicate_mgmt_frames -> hdd_for_each_adapter iteration

To make the iteration delete safe, redirect the fetching of the adapter
through objmgr. This reduces the possibility of race window by a large
margin. In this case, even if the adapter is freed as a part of
unregister_netdevice, the reference held ensures that we block the
unregister until the work is done in the current thread.

Change-Id: Ic49aa22a8eef68dc1977fb73f2c1fd920bfeb7a1
CRs-Fixed: 2557890
2019-11-11 15:15:33 -08:00
Li Feng
0ab277ae53 qcacld-3.0: Convert SME code legacy channel ID usage
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
    csr_roam_get_phy_mode_band_for_bss

Change-Id: I98be07f9bcca3b85fd1dedbc532fc9810a8d5e4d
CRs-Fixed: 2560010
2019-11-11 15:15:19 -08:00
nshrivas
ce07ddd790 Release 5.2.0.156O
Release 5.2.0.156O

Change-Id: Ic6ed54cbe06f4bb328bad45bac71be5ac51f1aff
CRs-Fixed: 774533
2019-11-11 10:49:18 -08:00
gaurank kathpalia
f50998a4cb qcacld-3.0: Set the flag for max BW support
Currently the FW expects the flag of
scan chan cmd to be set if the max BW
is filled for all the channels, which
is not set by driver.

Fix is to set the flag's 2 bit to allow
FW to use the max chanel BW.

Change-Id: I6240b8ae2f0c7389c43dd310d894a35411503d6e
CRs-Fixed: 2550431
2019-11-11 10:49:18 -08:00
nshrivas
151b1d0fc3 Release 5.2.0.156N
Release 5.2.0.156N

Change-Id: Ic3f7e5eeb4ac51228968b402ca31cb1e4f3dde5e
CRs-Fixed: 774533
2019-11-11 02:05:27 -08:00
nshrivas
e5fe7adfe4 Release 5.2.0.156M
Release 5.2.0.156M

Change-Id: I9e5c0b468fe89ae707517eae70b1bd6256ff739a
CRs-Fixed: 774533
2019-11-10 20:41:02 -08:00
Will Huang
a6af7e1182 qcacld-3.0: Use channel frequency in sme_get_cfg_valid_channels()
Use channel frequency in API sme_get_cfg_valid_channels(), and modify
all places which call this API.

Change-Id: Iab15d03b6e9070c68711f06ec7300bb29d986185
CRs-Fixed: 2559274
2019-11-10 20:41:01 -08:00
nshrivas
9c82045c9b Release 5.2.0.156L
Release 5.2.0.156L

Change-Id: Ieca4041da5eba25446038b540eda544e505c151c
CRs-Fixed: 774533
2019-11-09 02:26:29 -08:00
Arun Kumar Khandavalli
c13afcd9da qcacld-3.0: Retrieve information from the object manager vdev
sme_session_params has duplicate information which can be retrived
from the vdev object directly, hence remove the duplicate values
and get information directly from the vdev.

Change-Id: I151dbefcfedc20673fbf072b9c308dc9a6243bb1
CRs-Fixed: 2555909
2019-11-09 02:26:27 -08:00
nshrivas
dc111e8549 Release 5.2.0.156K
Release 5.2.0.156K

Change-Id: Id21eb310f6ea895a46dbaf2a12ce1d06b82f33da
CRs-Fixed: 774533
2019-11-08 18:23:38 -08:00
Li Feng
96955a1edd qcacld-3.0: Convert SME code legacy channel ID usage
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
    csr_roam_chk_lnk_set_ctx_rsp

Change-Id: Ia96b78406fc09d0ee4383a446bdd5e09d8f7f12c
CRs-Fixed: 2559993
2019-11-08 18:23:37 -08:00
nshrivas
ac101ab6bb Release 5.2.0.156J
Release 5.2.0.156J

Change-Id: I1879c2352e8970f9771316c5a5c51c23d3635df8
CRs-Fixed: 774533
2019-11-08 15:54:58 -08:00
Mohit Khanna
5b42d1b969 qcacld-3.0: Wait for IPA TX Completions on IPA disablement
In DBS scenario(SAP + STA) when all SPA clients disconnect, while STA is
still connected, IPA pipes are disabled on the lithium target. At this
time, its possible that some packets TX from IPA over WLAN are still
pending. If these completions come after IPA pipes are disabled, it can
lead to a NOC error, since the GSI doorbell register for WBM2SW2 ring
may be clock gated (after IPA pipes are disabled).

To avoid this situation, wait for some time before disabling IPA pipes.
IPA pipes are disabled after a timeout, when system suspend call tries
to suspend the bus. A driver unload or a softap tear-down will also
disable the pipes.

Change-Id: I542049fa19d0dcf5c31d9b8a2d836388847dd6c1
CRs-Fixed: 2553670
2019-11-08 15:54:58 -08:00