Commit Graph

15781 Commits

Author SHA1 Message Date
gaurank kathpalia
b8db936cfe qcacld-3.0: Select a different channel than self for SAP restart
Scenario of the issue is :-
1. Keep sta+sap_scc_dfs_ch as 0 to disable the dfs concurrency
2. Start a SAP on any 5ghz channel(NON-DFS).
3. Start a STA on a DFS channel.

Expectation: The SAP should not do MCC, SCC as the above
mentioned ini is 0, also MCC is not prefereed in a HW
solution where DFS is preferred, hence the SAP should go
to 2.4ghz and DBS should be the expectation.

Observation: The SAP does not do a DBS operation, and falls to
MCC here.

Reason: When the SAP gets a PCL in the path of SAP restart,
the PCL feels that a new SAP is going to come up, and hence
gives the best channel (first element of PCL ) as its own,
which leads to restart being rejected, as the SAP cannot start
on a channel which is the same as existing.
The final channel then selected is the STA channel, leading to
DFS SCC which is also not allowed. Hence the SAP is now stuck
in MCC(STA+SAP , one on DFS, and the other on NON-DFS channel).

Fix: The fix is to get an alternate channel for SAP restart, other
than the channel on which the SAP is already up, to lead to DBS,
if the STA channel is not suitable for SCC operaion.

Change-Id: Iab3ad22b2f970ca26ce3e6bc7a9b5ee34bc7e7ba
CRs-Fixed: 2443718
2019-05-08 04:47:00 -07:00
sheenam monga
8cb4be3fd3 qcacld-3.0: Fix bss peer use after free in pmo
wlan_vdev_get_bsspeer() return bss peer without taking the ref count
of the peer and thus if peer is deleted after wlan_vdev_get_bsspeer()
returns a valid peer, the caller will have stale entry of the peer.
Stale entry of peer can lead to Assert.

Use wlan_objmgr_vdev_try_get_bsspeer API for pmo to get the BSS peer
which increment the refcount if peer is valid. With this the peer
won't be deleted till the caller release the ref count of the peer.

Change-Id: I0901164132c497d78c9dc603539b045e5ce0f152
CRs-Fixed: 2446618
2019-05-08 04:46:56 -07:00
gaurank kathpalia
efb20a8901 qcacld-3.0: Provide assoc req, rsp IE to kernel in assoc fail case
Currently the driver does not sends the assoc req and assoc
response frame exchanged with the AP if the connection attempt
fails with the peer.
The connection failure can be because of n number of reasons,
OCE assoc reject be one of them.
The supplicant requires these IEs to reject the connection
attempt with the AP with which the connect attempt failed
for t number of seconds, which is mentioned by the AP.

Fix is to send the assoc req, and assoc response IEs to
the driver.

Change-Id: I9c1f7063105912a8005f9e8399640d028b15eec7
CRs-Fixed: 2445709
2019-05-08 04:46:52 -07:00
Jianmin Zhu
179d48eacf qcacld-3.0: Enable vdev SM for Rome and HST for AUTO platform
CONFIG_CMN_VDEV_MLME_SM := y

Change-Id: I52d0c9ec8bbff31abce0b092a96fdcd36bfa5245
CRs-Fixed: 2448794
2019-05-08 04:46:48 -07:00
nshrivas
9e4e9b8245 Release 5.2.0.132T
Release 5.2.0.132T

Change-Id: I8167ac28454bc809f1b2bd7d81b5ffd63423a34d
CRs-Fixed: 774533
2019-05-08 02:51:34 -07:00
Abhishek Ambure
ec00007647 qcacld-3.0: Rename mlme log macros
MLME log macros like mlme_debug, mlme_err, mlme_info are having same
definition in legacy and common code. To avoid this redefination,
lagacy MLME log macros are renamed.

Change-Id: I71fbbcd1f74df73e82b799b318a9e9a95a3cb0c8
CRs-Fixed: 2446535
2019-05-08 02:51:33 -07:00
Kiran Kumar Lokere
19dbfeb163 qcacld-3.0: Fix issue with HE partial BW UL MU MIMO capability
Update the HE partial BW UL MU MIMO capability in CFG with the
FW capability shared for supported features.

Change-Id: Ia2c934ce2277076f86fc679b55d4d386ae27795c
CRs-Fixed: 2446810
2019-05-08 02:51:29 -07:00
Bala Venkatesh
dd72bf7367 qcacld-3.0: Stop ROC timer synchronously
Mc timer is used to initialize the p2p roc timer.
And the actual timer runs in the soft irq thread and
when the timer exipres it posts the message to mc thread.
Currently, qdf_mc_timer_stop is called to stop the timer.
It calls the del_timer internally to delete the timer.
del_timer() ensures that the given timer is not queued
to run anywhere in the system. But the callback may
be running on another CPU core can create race conditions.

So use del_timer_sync to delete the roc timer.

Change-Id: I2c0fd6e335fc342a3acf06ede534c84d40e19346
CRs-Fixed: 2445705
2019-05-08 02:51:25 -07:00
nshrivas
eff6a69618 Release 5.2.0.132S
Release 5.2.0.132S

Change-Id: I5d0407b8ec38234cb1499db2db002aa8c2d671e0
CRs-Fixed: 774533
2019-05-06 21:25:32 -07:00
Rajeev Kumar
83592e020b qcacld-3.0: Move wow disable check after hdd validate context
Commit I0f79731a750c9d759bcd5593f11a740572e9d4ad added wow disable
check to disable wow(apps low power) mode features for all modes.
Move wow disable check after hdd validate context to make code more
readable. There is no issue with current code as well because DSC
vdev op protection already protects cfg80211 suspend/resume OPs
from SSR and driver unload.

Change-Id: I3a39a445e7431735e8ac64fc12b9e7ba71d8816c
CRs-Fixed: 2447777
2019-05-06 21:25:31 -07:00
nshrivas
226c859bfa Release 5.2.0.132R
Release 5.2.0.132R

Change-Id: I515ece157e9d0b8b45bfa43f1f67795fa0646ca0
CRs-Fixed: 774533
2019-05-06 17:04:13 -07:00
Kiran Kumar Lokere
412686bc01 qcacld-3.0: Fix HE capable setting in TDLS setup
Currently HE capable for TDLS peer is set from STA connection
session which sets the TDLS peer HE capability incorrectly.
Set the HE capable setting for TDLS peer from the peer STA
context that has correct value.

Change-Id: I232d32fb45ea5bbe7c2925922de3804e28f888cc
CRs-Fixed: 2441422
2019-05-06 17:04:12 -07:00
nshrivas
eded83990b Release 5.2.0.132Q
Release 5.2.0.132Q

Change-Id: Ic08c6e171dd680ecd589ab6b97b2058478c8e9ab
CRs-Fixed: 774533
2019-05-06 14:58:19 -07:00
Ankita Bajaj
5ea0f03d06 qcacld-3.0: Return proper error on request id mapping failure
When sending keepalive packets if there is failure in mapping
request id to pattern id in function -
hdd_map_req_id_to_pattern_id(), error code EINVAL is returned.
This error code is misleading and not sufficient to inform the
userspace that all available buffers are utilized and it should
stop sending keepalive packets.

Return proper error code if all available buffers are utilized
and no buffers are available to address any new request to send
keepalive packets.

Change-Id: Ie54299a0a7ff43a7044316d641d19ce12ac047c8
CRs-Fixed: 2445981
2019-05-06 14:58:18 -07:00
nshrivas
993c892fd2 Release 5.2.0.132P
Release 5.2.0.132P

Change-Id: I7ff3ac0295e068e05180224beca440aa9e207367
CRs-Fixed: 774533
2019-05-06 07:27:25 -07:00
Lin Bai
7bae103faa qcacld-3.0: Fix mismatch EPPING deinit
EPPING module only need to be deinited when current mode is EPPING.

Change-Id: Ia295af3f5ea2cffd394de7174be933d7fde6798d
CRs-Fixed: 2437683
2019-05-06 07:27:24 -07:00
nshrivas
7ebb54c2bb Release 5.2.0.132O
Release 5.2.0.132O

Change-Id: Id6d1d72bc06eee33a5ea6ba847ebbc76cf52d516
CRs-Fixed: 774533
2019-05-04 14:42:10 -07:00
Rajeev Kumar Sirasanagandla
b89a61f8e2 qcacld-3.0: Fix name of Roam Scan time
Currently Roam Scan time is misspelled as Raom in roam_stats debugfs,
fix with proper spell.

Change-Id: I7d5d889da1e168990f44ce609273812a7ba4ec3e
CRs-Fixed: 2445715
2019-05-04 14:42:10 -07:00
nshrivas
1e124f7f83 Release 5.2.0.132N
Release 5.2.0.132N

Change-Id: I7283d5c0ae6aee247539caab6ad5df99211953a2
CRs-Fixed: 774533
2019-05-03 21:32:36 -07:00
Rajeev Kumar
afccd9a477 qcacld-3.0: Fix bool logic typo in GO suspend enable check
If gEnableSapSuspend is disabled then in both SAP and GO mode
cfg80211 suspend should be rejected. Fix a boolean logic typo
in GO mode such that GO mode behaves same as SAP mode.

Change-Id: I49ab2a378f32eb4dedaa57183ad78cc022419cfa
CRs-Fixed: 2446133
2019-05-03 21:32:36 -07:00
nshrivas
0bb331f0b4 Release 5.2.0.132M
Release 5.2.0.132M

Change-Id: I3cad8bfbde6d8f3a8642bb1f57f1d38816bbfb24
CRs-Fixed: 774533
2019-05-03 09:23:47 -07:00
sheenam monga
0b2054b3c5 qcacld-3.0: Fix bss peer use after free in TDLS
wlan_vdev_get_bsspeer() return bss peer without taking the ref count
of the peer and thus if peer is deleted after wlan_vdev_get_bsspeer()
returns a valid peer, the caller will have stale entry of the peer.
Stale entry of peer can lead to Assert.

Use wlan_objmgr_vdev_try_get_bsspeer API in TDLS to get the BSS peer
which increment the refcount if peer is valid. With this the peer
won't be deleted till the caller release the ref count of the peer.

Change-Id: I9dc26771a0e8dadf75898c94bff5d4b8fb8a88d5
CRs-Fixed: 2445795
2019-05-03 09:23:47 -07:00
sheenam monga
1d83933bbb qcacld-3.0: Fix bss peer use after free in hdd
wlan_vdev_get_bsspeer() return bss peer without taking the ref count
of the peer and thus if peer is deleted after wlan_vdev_get_bsspeer()
returns a valid peer, the caller will have stale entry of the peer.
Stale entry of peer can lead to Assert.

Use wlan_objmgr_vdev_try_get_bsspeer API in hdd to get the BSS peer
which increment the refcount if peer is valid. With this the peer
won't be deleted till the caller release the ref count of the peer.

Change-Id: I9adf79810c7ec02af377f485eee596dd14289b50
CRs-Fixed: 2445716
2019-05-03 09:23:42 -07:00
nshrivas
497e91c8c3 Release 5.2.0.132L
Release 5.2.0.132L

Change-Id: I405d7b6cdf0aba11f725ad5562aa1de861f67f38
CRs-Fixed: 774533
2019-05-03 07:31:38 -07:00
Yeshwanth Sriram Guntuka
46b8ce5811 qcacld-3.0: Include valid channels for RRM scan with op_class 0
No channel is included for RRM scan on receiving beacon
report request with operating class 0 as there is no
channel list in the global operating class table.

Fix is to include all the valid channels for RRM scan when
operating class in beacon report request is 0.

Change-Id: I49aedbeabf14cdd709c6965a1f5af05cc7a68a76
CRs-Fixed: 2444737
2019-05-03 07:31:37 -07:00
nshrivas
23250b9527 Release 5.2.0.132K
Release 5.2.0.132K

Change-Id: I4d260b4714851da053f5817422a5d404f7698b22
CRs-Fixed: 774533
2019-05-03 05:45:19 -07:00
Bala Venkatesh
accb9ddbfc qcacld-3.0: Disable OCE in FW if SAP/ GO has any clients
Disable OCE in STA vdev if any sta gets associated to SAP/GO.
This will improve the scan results in STA interface.
Without this fix firmware will do probe request deferral for 15ms
out of 28 ms , so 15ms is gone and rest is not sufficient dwell
time to get all AP probe responses.

Change-Id: Ie6f79c86025c53360c792c740a963ed8a1d9b936
CRs-Fixed: 2443190
2019-05-03 05:45:18 -07:00
Rajeev Kumar
3a7c3400aa qcacld-3.0: Add an ini item to disable wow feature
WoW feature may need to be disabled for certain targets
hence add an INI item gDisableWow to disable wow feature
for all modes.

Change-Id: I0f79731a750c9d759bcd5593f11a740572e9d4ad
CRs-Fixed: 2446226
2019-05-03 05:45:13 -07:00
nshrivas
26d927d21e Release 5.2.0.132J
Release 5.2.0.132J

Change-Id: I8af2f2b91aa48f2130f01eafd8e036817e73b2c6
CRs-Fixed: 774533
2019-05-02 23:39:31 -07:00
Harprit Chhabada
4480699f92 qcacld-3.0: Fix OOB in wma_stats_event_handler
In wma_stats_event_handler several fields lengths are added
together to check against param_buf->num_data (the overall
length of the buffer).
The problem is that num_pdev_stats, num_vdev_stats and
num_peer_stats represent the number of structures of each
type rather than the total number of bytes.
Therefore update the logic to compare the expected size of
the entire payload to the actual payload.

Change-Id: I94af679480e62a61d4b25a1f370b2f199985f874
CRs-Fixed: 2429010
2019-05-02 23:39:30 -07:00
nshrivas
514424f31b Release 5.2.0.132I
Release 5.2.0.132I

Change-Id: Ib733c13722737e5b1f80671fab4645444e3925de
CRs-Fixed: 774533
2019-05-02 21:37:18 -07:00
Pragaspathi Thilagaraj
d68c61f8d3 qcacld-3.0: Fix FTIE sha384 akm parse failure
The FTIE subelem lengths are validated before copying
the R0-KH and R1-KH subelement. So remove the sub-element
length sanity check, which is causing parse failure.

Change-Id: I2fd2423e3d33e557e93a82ca250cb8bee1013c1a
CRs-Fixed: 2445863
2019-05-02 21:37:17 -07:00
nakul kachhwaha
088df27098 qcacld-3.0: Avoid NULL pointer dereference in lim_send_auth_mgmt_frame
pLimJoinReq will be NULL for the pe session, created when
STA does a successful FT-Preauth with target AP, using LFR
2.0 based roaming.
Any subsequent roaming using this new pe session will cause NULL
pointer dereference.
Hence checking validity of session->pLimJoinReq before accessing.

Change-Id: I47480a4d22c02ce1cc804430f60e8adf7959164e
CRs-Fixed: 2433647
2019-05-02 21:37:12 -07:00
nshrivas
9f5222d8cb Release 5.2.0.132H
Release 5.2.0.132H

Change-Id: I5bccbabd0e156e8e9dc90787085a7cdb3364d294
CRs-Fixed: 774533
2019-05-02 08:15:55 -07:00
Pragaspathi Thilagaraj
54018e049a qcacld-3.0: Add adaptive 11r VSIE changes and akm filter changes
Adaptive 11r feature that enables the AP to support FT-AKM
without configuring the FT-AKM in the network. The AP will
advertise non-FT akm with a vendor specific IE having Adaptive
11r bit set to 1 in the IE data. The AP also advertises the
MDE in beacon/probe response.

The STA should check the adaptive 11r capability if the AP
advertises MDE in beacon/probe and adaptive 11r capability in
vendor specific IE.  If adaptive 11r capability is found,
STA can advertise the FT equivalent of the non-FT AKM and
connect with 11r protocol.

Before sending probe request to the AP, the host driver
intersects the csr_roam_profile akm with the akms advertised
by the AP in the function csr_construct_rsn_ie(). Based on
the intersection, RSN IE is constructed and this RSN IE will
be sent over the association request frame. Add changes to
fill FT-PSK akm selector if AP advertises PSK akm(00:0f:ac,4).
If the AP advertises 802.1X akm, fill FT-802.1x akm(00:0f:ac,3).

If the session is adaptive 11r connection, then copy the
adaptive_11r flag to pe_session while sending join request.

Populate the adaptive 11r vendor specific IE into association
request frame.

Change-Id: Iae6ea37787e96fd7cffca32fc4d9a33eb5772f26
CRs-Fixed: 2441337
2019-05-02 08:15:54 -07:00
Pragaspathi Thilagaraj
1f3f99fd1f qcacld-3.0: Add support for adaptive 11r
Adaptive 11r feature that enables the AP to support FT-AKM
without configuring the FT-AKM in the network. The AP will
advertise non-FT akm with a vendor specific IE having Adaptive
11r bit set to 1 in the IE data. The AP also advertises the
MDE in beacon/probe response.

The STA should check the adaptive 11r capability if the AP
advertises MDE in beacon/probe and adaptive 11r capability in
vendor specific IE.  If adaptive 11r capability is found,
STA should advertise the FT equivalent of the non-FT AKM.

Introdue a compile time flag WLAN_ADAPTIVE_11R_ENABLED to
enable/disable adaptive 11r support.

If the AP is adaptive 11r capable, set the is_adaptive_11r_ap
flag in bss descrtiptor. This flag will be sent in join request
and populated to pe_session. Also mark the CSR session as
adaptive 11r session based on this flag.

Add changes to check for the adaptive 11r service capability
advertised by firmware. If the host driver connects to adaptive
11r AP, enable RSO only if the firmware advertises adaptive
11r capability, else RSO should be disabled.

If the connection is adaptive 11r connection and if the adaptive
11r ini is enabled, set the adaptive_11r flag in
wmi_roam_11r_offload_tlv_param sent over the wmi command
WMI_ROAM_SCAN_MODE to the firmware. This will enable firmware to
filter the adaptive 11r AP from roam scan results.

Change-Id: If27a2393e3f4bb68942f5ebcec0135f57627f16b
CRs-Fixed: 2437988
2019-05-02 08:15:49 -07:00
nshrivas
57808d9d69 Release 5.2.0.132G
Release 5.2.0.132G

Change-Id: I72bb2ae6686637da8d1573d3fe67ddb69bd0eaf7
CRs-Fixed: 774533
2019-05-02 03:09:05 -07:00
Rajeev Kumar Sirasanagandla
e709bca3e5 qcacld-3.0: Add rx rate info in connect_info debugfs
Currently in connect_info debugfs file, only tx rate info is presented.

Add rx_bit_rate to present rx rate info.

Change-Id: I24ceb287880a60896b49b69d40646b549fd9a3d1
CRs-Fixed: 2440285
2019-05-02 03:09:04 -07:00
nshrivas
58f582d498 Release 5.2.0.132F
Release 5.2.0.132F

Change-Id: I1bd9d2da2eb3e35c5c0df53396863ab09020aac0
CRs-Fixed: 774533
2019-05-02 01:24:51 -07:00
Pragaspathi Thilagaraj
c248c9e3ae qcacld-3.0: Cleanup legacy ini x-macro and parsing infra in HDD
Before CFG/INI convergence to the new cfg module, hdd maintained
the infrastructure to parse ini items from WCNSS_qcom_cfg.ini and
push the value to hdd_config members. With all the cfg/ini moved
to the new converged CFG component, this infra is not required.

So cleanup the legacy ini infrastructure in HDD.

Change-Id: Ia028edd10682a0ac8ed6a663c20ba5f67b962f1d
CRs-Fixed: 2445314
2019-05-02 01:24:50 -07:00
nshrivas
4e17ae7520 Release 5.2.0.132E
Release 5.2.0.132E

Change-Id: I44aa0ccfb2a155bbe741e02143eb16ce0c0845d9
CRs-Fixed: 774533
2019-05-01 23:41:48 -07:00
Abhishek Singh
5be0e03800 qcacld-3.0: Set key_cipher to process BIP check on RMF frames
If CRYPTO_SET_KEY_CONVERGED is enabled, the iface->key.key_cipher
is not set but is used to process multicast and broadcast
management frame.

Set iface->key.key_cipher with proper value when
CRYPTO_SET_KEY_CONVERGED is enabled.

Change-Id: I67d8bfe2210f4aad499830c4339de10c620d604d
CRs-Fixed: 2444420
2019-05-01 23:41:48 -07:00
Abhishek Singh
f880a7df25 qcacld-3.0: Use peer to get the cipher to decide MIC length
Driver uses cipher stored in vdev to get the MIC length, which
may get updated if multiple peer(TDLS peer in STA case) get
connected to the vdev. Thus depending on latest peer cipher type
the MIC length will be calculated for all peers.

Add changes to store cipher info in peer and use it to calculate
MIC length for the frame if CRYPTO_SET_KEY_CONVERGED is defined.

Change-Id: I852e4b519f55d8020237989314f8506aa275f379
CRs-Fixed: 2444416
2019-05-01 23:41:43 -07:00
nshrivas
2a66145b9b Release 5.2.0.132D
Release 5.2.0.132D

Change-Id: I1d9087f235d4155b763b68bb3b9d45e1de3e364a
CRs-Fixed: 774533
2019-05-01 21:58:41 -07:00
Harprit Chhabada
3f530bfe68 qcacld-3.0: Fix null pointer dereference in wma_roam_synch_event_handler
In wma_roam_synch_event_handler, if vdev_id is out of bounds,
code is redirected to cleanup, where iface is dereferenced to
set the value of roam_synch_in_progress.
This will result in a NULL pointer dereference because iface
hasn't yet been set.
Since this function does not have logic to set
iface->roam_synch_in_progress to true then it does not need
"cleanup" logic to undo that. So, remove the cleanup logic.

Change-Id: I8ffa0b9186c3595444cb188bbf00624b519e3894
CRs-Fixed: 2427334
2019-05-01 21:58:40 -07:00
nshrivas
dc4f8f1583 Release 5.2.0.132C
Release 5.2.0.132C

Change-Id: I42f1fef33c9cfd41d37ceb98073db0cc63f93691
CRs-Fixed: 774533
2019-05-01 16:21:03 -07:00
sheenam monga
4a3f34138c qcacld-3.0: Fix uninitialized subtype usage by policy manager
Currently, Updation of vdev related parameters
policy_mgr_vdev_entry_info is conditional. Conditional
updation can cause uninitialized usage of subtype of
policy_mgr_vdev_entry_info by policy manager to get concurrency
mode.

Fix is to initialize policy_mgr_vdev_entry_info with zero.

Change-Id: If1350bd66705defdea2e69d559de0a6578acde02
CRs-Fixed: 2423871
2019-05-01 16:21:03 -07:00
nshrivas
bf0c2b7c56 Release 5.2.0.132B
Release 5.2.0.132B

Change-Id: I0b2e497a9f0741bda9d0a88a93c321d2eb806060
CRs-Fixed: 774533
2019-05-01 10:18:24 -07:00
Ashish Kumar Dhanotiya
9549818d86 qcacld-3.0: Add ini support for SAR version
Currently SAR feature version is decided based on
feature flag WLAN_FEATURE_SARV1_TO_SARV2, if this
flag is enabled SAR version 2 is used.
Add an ini support to specify the SAR version.

Change-Id: Ib3ac8a3e7320d3e7f303ae14828d2b0428ca2993
CRs-fixed:
2019-05-01 10:18:23 -07:00
Nirav Shah
fd307befce qcacld-3.0: Enable CONFIG_CP_STATS for Genoa
Enable CONFIG_CP_STATS for Genoa.

Change-Id: Ie742546ca1e0eeb83aa5f4f53c46b275808ad51b
CRs-Fixed: 2442590
2019-05-01 10:18:19 -07:00