Commit Graph

18064 Commits

Author SHA1 Message Date
Yue Ma
b1e993f96a qcacld-3.0: Clean up channel number usage for CDP API
For cdp_hl_fc_set_td_limit() API, use channel frequency instead of
channel number.

Change-Id: Ic053be33ac7c7cbd2543b0208a1184b3f20a4346
CRs-fixed: 2565734
2019-12-16 19:45:14 -08:00
gaurank kathpalia
703aee2018 qcacld-3.0: Set seg1 frequency segment in case of 5ghz 160Mhz
Set seg1 frequency segment in case of 5ghz 160Mhz as
the primary centre channel frequency of 160Mhz band.

Change-Id: Id541419c084d8cdf2a22e84170dbe68d731f5ad0
CRs-Fixed: 2587220
2019-12-16 19:44:53 -08:00
nshrivas
7fb069d789 Release 5.2.0.161O
Release 5.2.0.161O

Change-Id: I4382ddbea60a8e9285cb3a719d67f1c2f43296f1
CRs-Fixed: 774533
2019-12-16 16:17:11 -08:00
Ashish Kumar Dhanotiya
b01e45b865 qcacld-3.0: Validate assoc response IE len before copy
When host sends ft assoc response to supplicant, it
allocates a buffer of fixed size and copies a variable
length of assoc response IEs to this fixed sized buffer.
There is a possibility of OOB write to the allocated buffer
if the assoc response IEs length is greater than the
allocated buffer size.

To avoid above issue validate the assoc response IEs length
with the allocated buffer size before data copy to the buffer.

Change-ID: Ife9c2071a8cc4a2918b9f349f4024478f94b2d78
CRs-Fixed: 2575144
2019-12-16 16:17:11 -08:00
nshrivas
4ea94fe0a5 Release 5.2.0.161N
Release 5.2.0.161N

Change-Id: I8e09a08ec5ee3db8d1b30153062290a4a8e0a58e
CRs-Fixed: 774533
2019-12-16 14:19:12 -08:00
Jingxiang Ge
8fdd274a24 qcacld-3.0: Vdev trans return directly if psoc/driver is in transition
Issue happen when:
thread1:
       rmmod driver, wlan_hdd_pld_remove which will get psoc trans.
       then try to get rntl_lock in hdd_unregister_wext;

thread2:
       trigger iw del interface, cfgops in kernel will get get rtnl_lock,
       in wlan_hdd_del_virtual_intf, vdev trans will be blocked by psoc
       trans in thread1. as thread1 it is also waiting for rtnl_lock, so
       both thread will be stuck.

Fix is:
       In psoc trans, vdev trans and vdev ops is not allowed, which should
       return directly.

Change-Id: I9cbd04bac438bb9483b4e89e73801fe71859e139
CRs-Fixed: 2583675
2019-12-16 14:19:12 -08:00
nshrivas
e9946e57e6 Release 5.2.0.161M
Release 5.2.0.161M

Change-Id: I651cadd0ce4853e488aaf3bbb440a1d01c149594
CRs-Fixed: 774533
2019-12-16 06:35:16 -08:00
Hangtian Zhu
274e08b80a qcacld-3.0: Fix compile issues when some features are disabled
Fix compile issues when some features are disabled, the features are:
BUILD_DEBUG_VERSION
CONFIG_CP_STATS
CONFIG_HOST_OPCLASS
CONFIG_FEATURE_ROAM_DEBUG
There are some other features depends on each other, so enabled features to
qcs40x.snoc.perf_defconfig, the features are:
CONFIG_WLAN_FEATURE_FILS
CONFIG_WMI_ROAM_SUPPORT
CONFIG_WMI_STA_SUPPORT
CONFIG_REG_CLIENT
CONFIG_WLAN_FEATURE_DP_BUS_BANDWIDTH
CONFIG_WMI_CONCURRENCY_SUPPORT
CONFIG_LL_DP_SUPPORT

Change-Id: I6fa1eacb79576a955e593dbb9ac52083742275e3
CRs-Fixed: 2354496
2019-12-16 06:35:16 -08:00
nshrivas
ebede607b8 Release 5.2.0.161L
Release 5.2.0.161L

Change-Id: I61ee6b1e4a4bdd3c8431b73095f775e2b19bd9c3
CRs-Fixed: 774533
2019-12-16 05:11:59 -08:00
Alok Kumar
69a11f24b1 qcacld-3.0: Fix double free of SKB for TSO
In case of TSO, same skb results in multiple tx_desc after
segmentation. To avoid multiple free of skb "skb->users"
count is used. Currently, race condition is observed while
incrementing "skb->users" count in ol_tx_ll_fast and before
that, tx_completion is received for all the segments which
are sent before. In this case, "skb->users" count will be 1
so, skb is removed from the skb debug node which leads double
free of skb when tx completion is received for the last segment.

To fix this, increment the "skb->users" count before sending
first segment and decrement only iwhen the last segment.

Change-Id: I26000fcda8715b737cac803ec8e64c0fb640dfe4
CRs-Fixed: 2582617
2019-12-16 05:11:59 -08:00
nshrivas
b5a79dfc0d Release 5.2.0.161K
Release 5.2.0.161K

Change-Id: I130f87cd240afa7f0a0d8de0d294b24824826b0d
CRs-Fixed: 774533
2019-12-14 20:35:09 -08:00
Jianmin Zhu
a69569a773 qcacld-3.0: Invalid bssid in add sta param of LFR2
Bssid of add sta param of LFR2 isn't initialized, add sta
failed.

Change-Id: I61cc5b2464452efa24ef41a6bd54e1df5d23215c
CRs-Fixed: 2586203
2019-12-14 20:35:09 -08:00
Sandeep Puligilla
0f54d03172 qcacld-3.0: Set peer state to AUTHORIZE after 4way handshake
Firmware peer state needs to be set to AUTHORIZE only after
completing the 4 way handshake. In failure scenario,
host configured AUTHORIZE state before 4 way handshake and
it triggered assert in the firmware.

Peer state moved to connection in progress/CONN after successful
association and AUTH state after successful 4way handshake.

Change-Id: I5e3d94843443d0fc2612a918b5c14479f91914d8
CRs-Fixed: 2580929
2019-12-14 20:34:46 -08:00
nshrivas
04e4d2fcd3 Release 5.2.0.161J
Release 5.2.0.161J

Change-Id: I65ca81813e1d500dec1d6c18eb74048a06f7defc
CRs-Fixed: 774533
2019-12-14 16:17:42 -08:00
Amar Singhal
d4f10747c9 qcacld-3.0: Use correct TX power for post vdev startup
Use correct power in post vdev startup. Use regulatory power for bss
channel.

Change-Id: Iaf1942b3538663a5f4f2e21c195626c1876ee03f
CRs-Fixed: 2580873
2019-12-14 16:17:42 -08:00
nshrivas
ab448b951b Release 5.2.0.161I
Release 5.2.0.161I

Change-Id: I4bdd31be8a58b20f374a2b31976465b666f33579
CRs-Fixed: 774533
2019-12-14 14:13:14 -08:00
Pragaspathi Thilagaraj
376ead97d5 qcacld-3.0: Add MBO IE for Open auth connection
The host driver checks the peer PMF capability
before adding MBO IE. But for open authentication
AP, the peer will not advertise PMF capability.
So while connecting to open mode AP, the MBO IE
doesn't get added in the association request frames.

Check if the authentication algorithm is open.
If the authentication algorithm is open don't
check for peer pmf capability to add MBO IE.

Change-Id: Ieae85ce696a40234535388a548906dc9521b19a0
CRs-Fixed: 2584527
2019-12-14 14:13:14 -08:00
nshrivas
349bbf6a55 Release 5.2.0.161H
Release 5.2.0.161H

Change-Id: I3531b255842efea0824691555afdc5a377853d7a
CRs-Fixed: 774533
2019-12-14 04:04:25 -08:00
Pankaj Singh
f84a5dd718 qcacld-3.0: Fix connection latency situation in driver
In 11D scan procedure if WMI_11D_NEW_COUNTRY_EVENTID event is
received, host processes 11d new country code event.
Host driver as a response sends WMI_SCAN_CHAN_LIST_CMDID
new channel list cmd to firmware.

As a result the ongoing scan procedure is aborted by firmware,
and if the scan was a first scan for connection, then it would
lead to connection latency as the supplicant then have to
scan again.

Fix is to check if any scan is in progress, then delay
WMI_SCAN_CHAN_LIST_CMDID channel list command to FW till
the current scan is complete.

Change-Id: I4e747bb747c32430b5d8024823aa0df4928a8c71
CRs-Fixed: 2569741
2019-12-14 04:04:25 -08:00
nshrivas
5ae3b1b6b9 Release 5.2.0.161G
Release 5.2.0.161G

Change-Id: I1920911bc0f9336b95f514a2ea4af53d68c5664d
CRs-Fixed: 774533
2019-12-14 01:44:03 -08:00
Abhishek Singh
9b6a080634 qcacld-3.0: Remove logic to disconnect STA on VDEV delete
With Vdev delete not using serialization, no need to disconnect
any STA with connection in progress.

The logic was added to remove the active connect command from
serialization queue so that vdev delete can complete before hdd
time out.

Now as vdev delete is not using the serialization remove this.

Change-Id: Id8c5ab31e54c8cf26999aff58c0773213f0cb13a
CRs-Fixed: 2585753
2019-12-14 01:44:03 -08:00
nshrivas
c635d76ef6 Release 5.2.0.161F
Release 5.2.0.161F

Change-Id: I7ac2adc1a6a43bb6930bed8e201c679a4af3de95
CRs-Fixed: 774533
2019-12-13 20:39:05 -08:00
Mohit Khanna
6c21d623e2 qcacld-3.0: Add 80211 BAR frame
Add IEEE 80211 Block ACK frame format.

CRs-Fixed: 2583857
Change-Id: Ib697a3146389c7d787df18a8c21cccc658ef383d
2019-12-13 20:39:05 -08:00
nshrivas
ffaf1d323d Release 5.2.0.161E
Release 5.2.0.161E

Change-Id: I38af244d47385f67d208fac9a5d89862f599a59d
CRs-Fixed: 774533
2019-12-13 14:11:31 -08:00
wadesong
fbf576a8fa qcacld-3.0: Convert CSR legacy channel ID usage
Remove wlan_reg_freq_to_chan within function
csr_update_op_class_array and use channel frequencies
directly to retrieve opclass.

To utilize the new channel frequency function,
regional opclass table will be used unconditionally,
given no OTA packets' country IEs will be populated
here(and thus no need to carry global opclass).

Change-Id: Ida9831e7e74223455089770744222185ae3cb1d3
CRs-Fixed: 2576285
2019-12-13 14:11:30 -08:00
Li Feng
8aa81b668b qcacld-3.0: Enable blacklist manager on qca6390
Enable blacklist manager on qca6390 to handle rssi assoc rej
in the assoc rsp.

Change-Id: I7fcfaa2054790259651062480a7995bf0f6c9922
CRs-Fixed: 2569318
2019-12-13 14:11:14 -08:00
nshrivas
bc81c48052 Release 5.2.0.161D
Release 5.2.0.161D

Change-Id: I0088a958b85ea7c29c612dbd69dcd39f1546890a
CRs-Fixed: 774533
2019-12-13 10:45:23 -08:00
Manikandan Mohan
8c58247da3 qcacld-3.0: Fix SAP ACL enforcement
Update driver to check SAP client acceptance as per MAC ACL policy
to control association.

Change-Id: Id6888b87393e79e2f86a7d5b1132c4a897179a23
CRs-fixed: 2583874
2019-12-13 10:45:23 -08:00
nshrivas
fd0371f10f Release 5.2.0.161C
Release 5.2.0.161C

Change-Id: I91cda591fc8f57cac9b7393db24f31a838a82b0e
CRs-Fixed: 774533
2019-12-13 07:03:11 -08:00
Nirav Shah
7d75434e39 qcacld-3.0: Add credit tracking for HL Data Path
Add credit tracking for HL Data Path in DPTRACE.
Also update proto_bitmap to dynamically enable/disable
credit tracking.

Change-Id: Idd9216b634586f3a81c2194ea4bd2122a472154a
CRs-Fixed: 2574053
2019-12-13 07:03:11 -08:00
sheenam monga
451c68c41a qcacld-3.0: Add ini support to configure MGMT retry limit
Currently, default MGMT retry limit is 4 which means 4
transmissions are supported for any management frame.
In noisy environment, Chances to get connection failure
are higher with 4 retransmissions.

Fix is to add INI support mgmt_retry_max to make
CFG_MGMT_RETRY_MAX configurable. Default value for
CFG_MGMT_RETRY_MAX is 15 to reduce the chances of connection
failure in noisy environment.

Change-Id: Id50cb68813fba517a8a1580a3d6662c73b0a381e
CRs-Fixed: 2575385
2019-12-13 11:51:36 +05:30
nshrivas
2a2d3a715a Release 5.2.0.161B
Release 5.2.0.161B

Change-Id: I7ed558a1a020b60c00c393750c09eedbbecb9da7
CRs-Fixed: 774533
2019-12-12 16:44:42 -08:00
Alok Kumar
14affd5647 qcacld-3.0: If NUD Failure not honored, restart the NUD tracking
When NUD FAILED event is sent by kernel, driver checks if this event
needs to be honored or not. If there is any active traffic, driver
will not honor NUD FAILED event and won't issue disconnect.
Currently, when NUD FAILED event is not honored, driver NUD state is
updated to NUD_NONE. This won't allow the further NUD FAILED event
processing in driver if received without NUD PROBE/NUD INCOMPLETE.

Reset the driver NUD state machine when NUD FAILED event
is not honored and restart NUD tracking.

Change-Id: I46826fdf60fc2f3543567c09ddc8574f119efd38
CRs-Fixed: 2583096
2019-12-12 16:44:42 -08:00
nshrivas
3d79bc2621 Release 5.2.0.161A
Release 5.2.0.161A

Change-Id: I22965266851548c2c8527b2cd9edb772903816cb
CRs-Fixed: 774533
2019-12-12 14:52:02 -08:00
Rakesh Pillai
a641f069ec qcacld-3.0: Enable config HAL_DISABLE_NON_BA_2K_JUMP_ERROR
Enable the config HAL_DISABLE_NON_BA_2K_JUMP_ERROR to
disable the 2k jump error detection in case of NON-BA.

CRs-Fixed: 2583130
Change-Id: I7eec5bc8ab2eddc4ba4eba4df4120112ad379bf0
2019-12-12 14:52:02 -08:00
nshrivas
f89f6e3be5 Release 5.2.0.161
Release 5.2.0.161

Change-Id: I8e0e83622739c0c660a7b194ac1a103f8419ee2f
CRs-Fixed: 774533
2019-12-11 17:44:33 -08:00
Srinivas Dasari
4a32ec5220 qcacld-3.0: Allow/Disallow NDP creation in different concurrencies
Currently in case of STA+NDI+NDI concurrency, the below scenario
can occur,
1) If NDI(NDP) + NDI(NDP) exists and sta tries to connect,
   then all NDPs on 1st NDI is tear down.
2) If STA+NDI(NDPs) exist and then another NDI tries to establish
   the NDP, then it is allowed in the current driver.

Fix is to reject the 2nd NDI(NDP) if STA+NDI(NDPs) concurrency
already exist.

Change-Id: Iadf6c9e10b9cdd59ca7beaace578a52b5e5dbb0f
CRs-Fixed: 2568552
2019-12-11 17:44:33 -08:00
nshrivas
8413026991 Release 5.2.0.160Z
Release 5.2.0.160Z

Change-Id: I98dd88b71144dd494b6e9af6457e832d330113fe
CRs-Fixed: 774533
2019-12-11 14:55:48 -08:00
gaurank kathpalia
d253c1c2fe qcacld-3.0: Return the safe channel from ACS ch list
Currently in case of LTE-coex event, the driver restarts
the SAP to a new channel if the current SAP operating
channel is unsafe.
In the current logic the driver gets the PCL apply the
logic to remove unsafe channels, NOL channels etc.
and then chose a final channel for the SAP.
Now for the case of standlaone SAP the PCL would contain
only 5ghz channels, and it may be the case that ACS
channel list contains only 2.4ghz channels because
the SAP was initially started on 2.4ghz band.
Now with the intersection of 2.4ghz and 5ghz, the driver
would not get anything left to restart the SAP and the SAP
restart would eventually fail.

Fix is to directly check the number of connections as 1,
that would mean only SAP is present, and if it is the
case, just restart the SAP on any other channel from the
ACS channel list rather than intersection with PCL.

Change-Id: If3a77ca877b2bf5e83ca64930e716936f680940f
CRs-Fixed: 2556054
2019-12-11 14:55:48 -08:00
Abhinav Kumar
d83a689ba1 qcacld-3.0: Send pause indication to upper layer for proper vdev
While processing BEACON_REPORTING_ACTIVE_REPORTING vendor command
on a particular STA (say its vdevid == 0), If scan started on any
interfaces (for example, on same STA (with vdev id == 0) or P2P
(with vdev id == 1) or on second STA (with vdev id == 1) of
STA + STA), Host should send a pause indication to upper layer only
for the vdev id(s) (here vdev id == 0) on which host processing
BEACON_REPORTING vendor command comes from user space.

Add sanity check to make sure that HOST should send pause
indication to upper layer only for vdev of STA for which host
processing BEACON_REPORTING vendor command at the moment.

Change-Id: I5ed5dc42e4dded2a803349d75234b84d3aa7f314
CRs-Fixed: 2582389
2019-12-11 14:55:32 -08:00
nshrivas
b326c27753 Release 5.2.0.160Y
Release 5.2.0.160Y

Change-Id: I57b10ac1e518284b2045f81f2d0eb95daabb01d4
CRs-Fixed: 774533
2019-12-11 13:35:14 -08:00
gaurank kathpalia
37dcc70525 qcacld-3.0: Lower down the channel BW in 2.4ghz case
Currently the driver in case of force SCC picks up
2.4ghz SCC channel if any other STA/AP is already
up on that channel, so in the process of shifting
in the API sap_validate_channel it picks up 2.4ghz
and calls a reg API to set the freq related params
to it. Now since the frequency for 2.4ghz is 40 mhz
capable the max BW supported for 2.4ghz becomes 40 and
the driver starts the SAP on 40mhz.
Now since the OBSS scan is offloaded to the hostpad
and now since it was driver which started the SAP
on 40mhz there is no mechanism to start OBSS scan
from driver, which leads to channel blockage if
any legacy 11g, 11b lient is operating on the channel.

Fix is to lower down the BW to 20Mhz if the SAP does a
force SCC in 2.4ghz.

Change-Id: I0d85dfb5e9e8332957d853173063e77d18ea600c
CRs-Fixed: 2581495
2019-12-11 13:35:13 -08:00
nshrivas
2eda6154c3 Release 5.2.0.160X
Release 5.2.0.160X

Change-Id: Ia8db388e0abc77b8772b7b8bc2525535c98f446e
CRs-Fixed: 774533
2019-12-11 08:52:15 -08:00
Pragaspathi Thilagaraj
5292e0ab83 qcacld-3.0: Handle WMI_ROAM_STATS_EVENTID from firmware
The event WMI_ROAM_STATS_EVENTID is received after
every roam, once the roam synch complete is sent by the host.
This event contains details regarding the roam trigger reason,
values associated with the trigger, roam scan candidate info,
roam status, roam failure reason.

This helps in debugging/understanding the scenario when roam
failure happens.

WMI_ROAM_STATS_EVENTID Format:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
roam_stats_event_fixed_param |-> Contains vdev id and number of
                             |   roams detail.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
roam_trigger data TLV        |-> Has details on the roam trigger
                             |   reason. Number of roam triggers
                             |   TLV detail is present in the
                             |   fixed param. Maximum 5 roam
                             |   per event is supported
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmi_roam_scan_info TLV       |-> Has details on the roam scan -
                             |   scan type, rssi threshold,
                             |   reason.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmi_roam_scan_channel_info   |-> Has details on the roam scan
TLV                          |   channels. Number of channels
                             |   per trigger is found on the
                             |   wmi_roam_scan_info TLV.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmi_roam_ap_info TLV         |-> Has details on Roam candidate
                             |   APs found during scan. Number
                             |   of roam candidate APs per
                             |   trigger is found on the
                             |   on the wmi_roam_scan_info tlv.
                             |   Max 8 candidates are allowed
                             |   per roam scan.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmi_roam_result TLV          |-> Info on roam success or failure.
                             |   Fail reason, if roaming failed.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmi_roam_neighbor_report_info|->After roaming, firmware sends
TLV                          |  neighbor/btm report to roamed AP
                             |  to get list of roam candidates.
                             |  This tlv provides info on this.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmi_roam_neighbor_channel_info|-> This has the info on the
                              |   channel list received as part
                              |   of BTM/Neighbor report.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Print the info received as part of this event into kmsg.
Featurize all the function defines for this roam logging under
WLAN_FEATURE_ROAM_OFFLOAD flag.

Change-Id: Iddc70b572f2e3dc47f08fd1c3c3597cb44981a17
CRs-Fixed: 2576222
2019-12-11 08:52:14 -08:00
nshrivas
fc03a36791 Release 5.2.0.160W
Release 5.2.0.160W

Change-Id: Ib762fe2d9383054ab3c390d338dd2f4c34077356
CRs-Fixed: 774533
2019-12-11 06:27:56 -08:00
gaurank kathpalia
fdeea3fdc6 qcacld-3.0: Fix peer address stored in wma_rx_invalid_peer_ind
In wma_rx_invalid_peer_ind driver store the i_addr1(ra) in invalid
peer list, which is the self address.

To fix store i_addr2(ta), which is the actual peer address,
in invalid peer list.

Change-Id: I6ff035f3155e611d867778ea56bfdbe8ed3302c8
CRs-Fixed: 2583502
2019-12-11 06:27:56 -08:00
nshrivas
ff74647dc0 Release 5.2.0.160V
Release 5.2.0.160V

Change-Id: Ic19bcbd248571f88ad2a0558237f593b4ecda0c3
CRs-Fixed: 774533
2019-12-11 05:01:34 -08:00
Jia Ding
db2e940123 qcacld-3.0: Initialize IPA metering feature and perf level
In IPA uC ready handler, metering feature and perf level are not
initialized. Therefore properly initialize them after IPA pipes
are connected.

Change-Id: I99621bb2c2831d66e11b0ca903ecb324ef898836
CRs-Fixed: 2582409
2019-12-11 05:01:34 -08:00
nshrivas
a8a3e715e6 Release 5.2.0.160U
Release 5.2.0.160U

Change-Id: I7996a48547782c8ceb536904bb21337cbbb53aa7
CRs-Fixed: 774533
2019-12-11 03:21:04 -08:00
Abhishek Singh
4f134e2ff7 qcacld-3.0: Cleanup unused legacy crypto api of csr
Cleanup unused legacy crypto api of csr.

Change-Id: I68cd35d8a72fbea675a34d9894563bf83e1fed8a
CRs-Fixed: 2583679
2019-12-11 03:21:03 -08:00