Commit graph

21,452 commits

Author SHA1 Message Date
Rakesh Pillai
56e622954d qcacld-3.0: Fix deadlock between rtnl lock and vdev ops DSC
The below described scenario can lead to a deadlock
between wlan_hdd_del_virtual_intf and the work handler
to update netdev features.
- netdev features update work is scheduled and takes the
  vdev ops DSC lock.
- before the work is able to take the rtnl lock, a delete
  interface is called from kernel with rtnl lock held
- wlan_hdd_del_virtual_intf waits indefinitely for all the
  ops to be completed on this vdev.
- Now netdev feature update work is waiting for rtnl lock
  with vdev ops DSC held, and wlan_hdd_del_virtual_intf is
  waiting for vdev ops DSC with rtnl lock held.

In order to fix the above deadlock scenario, set a delete in
progress flag in wlan_hdd_del_virtual_intf and use rtnl_trylock
in the netdev features update work, only if the delete in
progress flag is not set. Using rtnl_trylock with a few equally
time spaced attempts to acquire rtnl lock will make sure the
features update is done it the work is unable to acquire the
rtnl lock due to any other netdev operation (apart from interface
deletion).

Change-Id: Iad6448d4d9bf7f4cbfcfc4c6fb3afb248afaeeec
CRs-Fixed: 2854713
2021-01-19 11:57:10 -08:00
snandini
907c73bef1 Release 2.0.8.8P
Release 2.0.8.8P

Change-Id: I709fa8d44b112c9d8b7f1ac456aa020a062ddd84
CRs-Fixed: 774533
2021-01-19 01:02:41 -08:00
Ashish Kumar Dhanotiya
db0813513e qcacld-3.0: Validate FW provided mac address
Currently host driver does not validate the mac address which
it receives from FW and based on this mac address host derives
remaining mac addresses. If mac address from FW is multicast
or broadcast address then it will be treated as invalid mac
address and adapter creation will fail.

To address above issue, accept mac address provided by FW only
if it is a valid mac address else derive all the mac address
based on driver's internal logic.

Change-Id: I4c4b60cac082680df90016ec4ba63f744353771c
CRs-Fixed: 2853417
2021-01-19 01:02:41 -08:00
snandini
ad86601aa5 Release 2.0.8.8O
Release 2.0.8.8O

Change-Id: I468a4e99e85747b266c107c7c15bc7878e0f1bc9
CRs-Fixed: 774533
2021-01-18 08:54:51 -08:00
Pragaspathi Thilagaraj
7a6a981879 qcacld-3.0: Stop all the flows for emergency deauth roaming
Stop all the TSPEC flows after roaming to new AP due to
disconnect roam trigger as the previoes TSPEC session is not
valid. Firmware clears the TSPEC session on deauth roaming and
doesn't include the RIC IE in roams followed by deauth trigger.
But host entry for the TSPEC flows exist and doesn't allow new
TSPEC session setup commands.

Clear all the TSPEC flows with older AP to allow new TSPEC
session creation with roamed AP due to disconnect roam trigger.

Change-Id: I9d75acba402e6d8380584fd1ffd310c2a21cd19d
CRs-Fixed: 2816035
2021-01-18 08:54:51 -08:00
Pragaspathi Thilagaraj
a1421df272 qcacld-3.0: Fix compilation failure with TWT disabled
Fix the compilation error with TWT compilation flag
disabled.

Change-Id: I0b25d4d3b5e7e1d00e405ce87894a8b84dd381e1
CRs-Fixed: 2856815
2021-01-18 08:54:46 -08:00
Pragaspathi Thilagaraj
ba4330e418 qcacld-3.0: Fix IE offset while checking OWE transition mode
In OWE transition mode, the beacon from the transition mode AP
should be dropped after sending unicast probe to avoid kernel
entry for BSS with null ssid. But while parsing the IE, the
frame pointer passed points to the fixed fields.

So pass the ssid IE pointer to the OWE transition mode IE
parsing API.

Change-Id: I668bc2dfc32a5a23b44da50ac81bac98250faa2a
CRs-Fixed: 2814173
2021-01-18 08:54:42 -08:00
snandini
496819f443 Release 2.0.8.8N
Release 2.0.8.8N

Change-Id: I0ed03a9792d90b143afc7b2d3d6e57d33dae2427
CRs-Fixed: 774533
2021-01-18 06:54:07 -08:00
Abhishek Ambure
b7c5961308 qcacld-3.0: Don't block NAN+NDI+STA concurrency for non-dbs
When a new connection is about to come up, host checks if current
concurrency combination including the new connection is allowed or
not based on the HW capability.
Firmware manages NAN + NDI by dividing up slots. Connection on NDI
is re-negotiable and therefore a 3rd connection with the same MAC
is possible.

Change-Id: I63e39c5cd4945cd308e475c1e03f676336c4e7c1
CRs-Fixed: 2841457
2021-01-18 06:54:07 -08:00
snandini
e96a80a1a0 Release 2.0.8.8M
Release 2.0.8.8M

Change-Id: Iccdf944bd2aff138acd72508e587070bd5399fc6
CRs-Fixed: 774533
2021-01-18 03:04:04 -08:00
Ashish Kumar Dhanotiya
fb42513a12 qcacld-3.0: Add a check to validate BW for set ap cahn width
Currently driver does not validate BW before it invokes the kernel
api cfg80211_get_chandef_type. There is a WARN_ON in kernel
if above api is invoked with invalid BW.

To address above issue add a logic to validate the BW
before driver invokes the kernel api.

Change-Id: Ie237aa46813bfa4206a1057a0418d9562dbbae75
CRs-Fixed: 2846462
2021-01-18 03:04:04 -08:00
snandini
65452e8f14 Release 2.0.8.8L
Release 2.0.8.8L

Change-Id: I8d550e6e2bbe95aba6d36958d6d46646f9236e78
CRs-Fixed: 774533
2021-01-17 08:03:30 -08:00
Pragaspathi Thilagaraj
9784f4f209 qcacld-3.0: Add support for TWT get capabilities vendor command
Add support to get the TWT self and peer capabilities via the
QCA_WLAN_TWT_GET_CAPABILTIES vendor command.
High 16 bits - self capabilities,
Low 16 bits : peer device’s capabilities

The meaning of each bit is below:
Bit 0: Requester Support
Bit 1: Responder Support
Bit 2: Broadcast TWT Support
Bit 3: Flexible TWT Support
Bit 4: TWT Required

Change-Id: I78b0c5902c89fe3a8eec1697fa513aac3c2b7a36
CRs-Fixed: 2847177
2021-01-17 04:12:46 -08:00
snandini
44dca06cb8 Release 2.0.8.8K
Release 2.0.8.8K

Change-Id: Ibf5d5105d7885dc207d16bf80166d169027cb863
CRs-Fixed: 774533
2021-01-17 04:04:19 -08:00
Pragaspathi Thilagaraj
d26e1e29f7 qcacld-3.0: Make TWT commands as async
Add support for below TWT commands to be sent as asynchronous
commands from userspace:
1. TWT teardown
2. TWT pause
3. TWT resume

Change-Id: I1989fe153cc8a482a9616a7f6879de3b92ef82fb
CRs-Fixed: 2847143
2021-01-17 04:04:18 -08:00
Paul Zhang
c5c3bc6ce3 qcacld-3.0: Add support op QCA_WLAN_TWT_NUDGE
This is the new OP for vendor sub command
QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT to set twt
suspend/resume parameters.

Change-Id: If4ec03364f41ca4960673fb7a13b91a929cfe567
CRs-Fixed: 2797664
2021-01-17 04:04:13 -08:00
Srinivas Girigowda
28fe4a42b5 qcacld-3.0: Introduce wma_validate_handle()
Introduce wma_validate_handle() with the caller function name
embedded in it to validate the WMA handle and log incase
of error. Calling functions can avoid logging in case
wma_validate_handle() returns -EINVAL. This reduces logging and
thereby memory foot print.

Change-Id: If38436a590d8b950509bde40468b9ddc3cf33e8d
CRs-Fixed: 2833040
2021-01-17 04:04:09 -08:00
Pragaspathi Thilagaraj
31c63f8088 qcacld-3.0: Register TWT callbacks statically
TWT HDD callbacks are registered dynamically when each TWT
command is received from userspace and unregistered while
sending response. This design was in place considering the
existing TWT commands are synchronous and multiple back to
back TWT commands will not be received. But now the TWT
commands from userspace can be received asynchronously.

So register the TWT callbacks statically during start modules in
wlan_hdd_twt_init().

Change-Id: I7dd9333c330a90fca421a2cc2574b2db76536e96
CRs-Fixed: 2830644
2021-01-16 22:50:08 -08:00
snandini
49e59d4243 Release 2.0.8.8J
Release 2.0.8.8J

Change-Id: I5eda7d56f739281ed6263c2cac168d3c9a71f72e
CRs-Fixed: 774533
2021-01-16 13:51:34 -08:00
Pragaspathi Thilagaraj
36f9799626 qcacld-3.0: Add support for TWT setup additional parameters
Add support for below TWT setup additional parameters:
Minimum TWT wake interval
Maximum TWT wake interval
Minimum TWT wake duration
Maximum TWT wake duration

Make the TWT setup command handling as asynchronous.
Send QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT event to
userspace when add dialog complete event is received
from firmware.

Change-Id: Ia56bbecd04e0c02a55dc1a7f43ee533a85f82f1d
CRs-Fixed: 2842895
2021-01-16 13:51:34 -08:00
snandini
8b8420dca3 Release 2.0.8.8I
Release 2.0.8.8I

Change-Id: I8a834b814e5bc8493a1639bdfdb94d78c80a4fab
CRs-Fixed: 774533
2021-01-16 11:43:54 -08:00
Srinivas Dasari
a1898067b3 qcacld-3.0: Abort ongoing STA connection when SAP goes down
Currently, ongoing STA connection is not aborted when a
stop_adapter is received on SAP. This results in a peer leak in
the below scenario,
1. Turn on SAP.
2. Initiate STA connection to an SSID which has multiple BSSIDs in
   dense environment. Connection gets retried to next BSSID when
   it fails to connect to the current BSSID.
3. Turn off SAP while connection is happening. stop_bss command
   doesn't get processed and waits in queue as the STA connection
   is going on.
4. If stop_bss timer(10 seconds) expires while STA connection is
   in progress, SAP vdev is destroyed without cleaning up self
   peer. So, there would be a peer leak.

Abort the ongoing sta when SAP goes down, so that stop_bss gets
processed cleanly and self peer is also cleaned up.
Same is applicable for P2P_GO as well.

Change-Id: I888a602cd27a9bbec54fb356ed1488cd9fc2847c
CRs-Fixed: 2852023
2021-01-16 08:58:09 -08:00
snandini
128f8b6f2d Release 2.0.8.8H
Release 2.0.8.8H

Change-Id: Idbf8b40da185b911d2c4deccf767bda5ec18deda
CRs-Fixed: 774533
2021-01-15 12:29:07 -08:00
Madhvapathi Sriram
efffae9284 qcacld-3.0: Validate dialog id in TWT setup request
Incorrect dialog id can cause add dialog request to target to fail.
Validate the id from user before sending it to the target.

Change-Id: Ib40b2554a1a420e9b799aab80a991fbab484667f
CRs-Fixed: 2827838
2021-01-15 12:29:07 -08:00
snandini
320e3f2dff Release 2.0.8.8G
Release 2.0.8.8G

Change-Id: I1cc0bacf339bd38a37e84f8c613b71ef777c9033
CRs-Fixed: 774533
2021-01-14 21:27:33 -08:00
Pragaspathi Thilagaraj
b9570e9fcb qcacld-3.0: Advertise TWT capability if "enable_twt" ini is true
Currently in SAP and STA mode the driver advertises TWT
capabilities in the HE capabilities IE based on the below ini
values irrespective of the master ini "enable_twt" to enable
the twt feature:
"he_twt_requestor","he_twt_responder", "he_bcast_twt",
"he_flex_twt_sched".
So even with the ini is disabled, twt capabilities are advertised

Advertise TWT capability only if "enable_twt" ini is true.

Change-Id: Iae3a98ee339f3859391e0deb64ddd354634b0cbf
CRs-Fixed: 2844516
2021-01-14 21:27:33 -08:00
Jianmin Zhu
d75c4ea61c qcacld-3.0: Fix long ping delay after enable RTPM
Issue1: Driver RTPM state is ON/NONE, Kernel state is RESUMING.
cdp_runtime_resume is already complete,
hif_pm_runtime_get return -E_INPROGRESS,
dp_tx_hw_enqueue will set the flush event,
but cdp_runtime_resume is already done,
this flush event will be handled only on next pkt tx.

Issue2: Driver RTPM state: Resuming
hif_pm_runtime_get returns -EBUSY,
dp_tx_hw_enqueue is interrupted by any IRQ,
cdp_runtime_resume is completed,
dp_tx_hw_enqueue will set the flush event,
This flush event will be handled only on next pkt tx.

Fix:
Introduce a link_state_up atomic variable in hif to track the link state
change by pld_cb.
Set atomic variable link_state_up=1 in pmo_core_psoc_bus_runtime_resume
just after pld_cb. pld_cb brings the PCIe bus out of suspend state.
Set atomic variable link_state_up=0 in pmo_core_psoc_bus_runtime_suspend
just before pld_cb. pld_cb puts the PCIe bus into suspend state.

Introduce dp_runtime_get and dp_runtime_put.
dp_runtime_get get refcount with increment of an atomic variable.
dp_runtime_put return refcount with decrement of  this atomic variable.
If hif_pm_runtime_get returns -EBUSY or -EINPROGRESS,
take the dp runtime refcount using dp_runtime_get,
check if the link state is up, write TX ring HP,
return the dp runtime refcount using dp_runtime_put.

cdp_runtime_suspend should reject the suspend, if dp_runtime_get is non
zero.
cdp_runtime_resume should wait until dp_runtime_get becomes zero or time
out, then flush pending tx for runtime suspend.

Change-Id: I7f38b3dc6975fcc208ad85e913564dfef5cc1cb7
CRs-Fixed: 2849002
2021-01-14 21:27:29 -08:00
snandini
c9903d1b68 Release 2.0.8.8F
Release 2.0.8.8F

Change-Id: I3c849df8dff81c729f261a80422f4be1ff6fdea5
CRs-Fixed: 774533
2021-01-14 19:29:54 -08:00
Jianmin Zhu
f6edb7312a qcacld-3.0: Fix channel width and center freq1 mismatch issue
In beacon, if STA Channel Width is 1, indicate 40M width is supported,
but Secondary Channel Offset is 0, indicate 40M channel is disabled,
20M width should be set instead of 40M.
Refer 802.11-2016 Table 9-168 HT Operation element fields and
subfields.

Change-Id: Ifb130b3447e4f10723295b93e505df929a16486d
CRs-Fixed: 2854933
2021-01-14 15:12:56 -08:00
snandini
9726c80339 Release 2.0.8.8E
Release 2.0.8.8E

Change-Id: Icf50abb392abee839ec3578d5a5a82821e28ea28
CRs-Fixed: 774533
2021-01-14 13:20:39 -08:00
Yu Tian
25e6c2d027 qcacld-3.0: Disable TDLS RX pkt statistics in bus vote high
TDLS pkts statistics API cost 10% CPU cycle of whole RX
thread. The code logic show it may not be caclulated when
bus vote larger than medium. But checking routine always
return false of which may lead more power cost. Fix bus
vote checking routine to return correct vote status in
stead of always false value.

Change-Id: I003c9943ef3a4bbc83db6caaf893408e40e4962b
CRs-Fixed: 2842119
2021-01-14 13:20:38 -08:00
Arun Kumar Khandavalli
d955b38e8c qcacld-3.0: Debug the reason for recovery during driver unload
During the driver unload whenever the recovery is triggered in
the current implementation the request is silently dropped, this
is resulting issues in other areas during the driver which is making
it harder to debug the issue.

Trigger system panic to debug the reason for recovery during the
driver unload.

Change-Id: I67c6c7e8b19dcc3371cd6691c0e3f19be4c33c46
CRs-Fixed: 2850591
2021-01-14 13:20:34 -08:00
snandini
5fb91f4a4d Release 2.0.8.8D
Release 2.0.8.8D

Change-Id: Ia69832bc4bb2290724970806200051cf37b7a646
CRs-Fixed: 774533
2021-01-14 11:14:07 -08:00
Liangwei Dong
178189c4fc qcacld-3.0: Change INI sae_connect_retries defalut 0x52
Change "sae_connect_retries" to 0x52 to increase SAE retries:
1 roam auth retry, 2 auth retry and 2 full connection retry.

Change-Id: I5b11dd07abfccfca9529ba9350e326dbf4c23a7a
CRs-Fixed: 2846440
2021-01-14 14:03:46 +08:00
snandini
c622336f26 Release 2.0.8.8C
Release 2.0.8.8C

Change-Id: Ia9450f1bf67dc21cf14f948a14ffb60e59f5af92
CRs-Fixed: 774533
2021-01-13 13:26:45 -08:00
Liangwei Dong
6dc9ff0e8d qcacld-3.0: Record station connect/disconnect event
Record station connect/disconnect event for debug connectivity
issues. Dump the latest 20 records for unexpected disconnect case.

Change-Id: Ibf04b98a0124b84b77e3b5647e4d4234189b0ab2
CRs-Fixed: 2849471
2021-01-13 13:26:45 -08:00
snandini
c5d9160ef5 Release 2.0.8.8B
Release 2.0.8.8B

Change-Id: Id44651ea0c42e07ffb2a30b7e1399caea7fa35c8
CRs-Fixed: 774533
2021-01-13 11:24:28 -08:00
Min Liu
b37228af58 qcacld-3.0: Update validation for SA Query frames
Update the validation for SA Query Request/Response to fix the
issue that these frames are dropped unexpectedly when OCI IE
is not present.

Change-Id: I57acd699fd5c7eba23551133e3439fe23c1949a4
CRs-Fixed: 2846717
2021-01-13 11:24:28 -08:00
snandini
83e52a5cff Release 2.0.8.8A
Release 2.0.8.8A

Change-Id: Ib12f4513688e037915a8a7c010c3d66c66d72889
CRs-Fixed: 774533
2021-01-13 02:34:46 -08:00
Vulupala Shashank Reddy
a52682f649 qcacld-3.0: Process offload Tx data packet for pkt capture mode
Subscribe for offload Tx data wdi event and process offload Tx
data packets and post into mon thread for packet capture mode

Change-Id: Ic61043b8461eed4be5e8dc8d41baca2574224a90
CRs-Fixed: 2845598
2021-01-13 02:34:45 -08:00
snandini
1efa9e2463 Release 2.0.8.8
Release 2.0.8.8

Change-Id: I974f53dd2ee645006d2fbc810cf35af49c4ab7a8
CRs-Fixed: 774533
2021-01-12 20:19:11 -08:00
Bapiraju Alla
92849931e4 qcacld-3.0: Add an INI param to configure HW assist feature in FW
HW assist is a FW feature and it is enabled by default. But there is
no provision to disable/enable this feature based on requirement.

To address this, add INI param to enable/disable HW assist feature
in FW.

Change-Id: Icdc4a842be4d5c6991a785ee270f61ba87fcfe79
CRs-Fixed: 2841346
2021-01-12 20:19:11 -08:00
snandini
d8a4286799 Release 2.0.8.7Z
Release 2.0.8.7Z

Change-Id: Iaa3b366c473b754de09687693a85f075a29e065a
CRs-Fixed: 774533
2021-01-11 23:44:31 -08:00
Liangwei Dong
796c684186 qcacld-3.0: clear pmkid cache when ap off
In AP side power off/on case, AP security has been cleanup.
The STA side might still cache PMK ID in driver and it will always
use PMK cache to connect to AP and get continuously connect failure
in SAE security. This function is to detect AP off based on FW
reported BMISS event. Meanwhile judge FW reported last RSSI > roaming
Low rssi and not less than 20db of host cached RSSI to avoid
some false alarm such as normal DUT roll in/out roaming.

Change-Id: I5d8ec9e9d4f8a44178b113d370799fe2bc0373fb
CRs-Fixed: 2841481
2021-01-11 23:44:31 -08:00
snandini
90e9ca5798 Release 2.0.8.7Y
Release 2.0.8.7Y

Change-Id: I8ffa62db3f553f1b04a19deaaa770687f76f4b68
CRs-Fixed: 774533
2021-01-11 21:36:14 -08:00
Jinwei Chen
4ba831e858 qcacld-3.0: remove CONFIG_PCI_MSM compilation flag
PLD driver already abstract MSM specific feature, remove CONFIG_PCI_MSM
complilation flag in wlan driver.

Change-Id: I44f685561222f2210e70475df23385e4c211c7d1
CRs-Fixed: 2851926
2021-01-11 18:44:13 -08:00
snandini
068d7204c8 Release 2.0.8.7X
Release 2.0.8.7X

Change-Id: I272b4bb4682283ada3fc6405589727dc75d4a4a1
CRs-Fixed: 774533
2021-01-11 15:42:36 -08:00
Yeshwanth Sriram Guntuka
9431845a72 qcacld-3.0: Do not log info on rx pkt deliver failure
Print is logged on rx packet deliver failure with
no relevant info since the skb is already freed.

Fix is to not log info on packet deliver to stack
failure.

Change-Id: I8f91a14030c76907d60e95ccbd19b600938ace90
CRs-Fixed: 2849093
2021-01-11 15:42:36 -08:00
Tushnim Bhattacharyya
6b1b0967f3 qcacld-3.0: Skip CAC if precac is done already for the vdev
No need to run CAC again if precac is done already for the
SAP vdev.

Change-Id: Icfdd8c3fdb3404143b085a47fd7772270e8dca76
CRs-Fixed: 2850434
2021-01-11 15:42:32 -08:00
snandini
a497f2a6ad Release 2.0.8.7W
Release 2.0.8.7W

Change-Id: Ia4ae173751822d0f5c271a38ffb2937317399500
CRs-Fixed: 774533
2021-01-11 09:29:08 -08:00