Grafico dei commit

12963 Commit

Autore SHA1 Messaggio Data
Varsha Mishra
01c0c273d1 qcacmn: Drop fragmented multicast/broadcast frames
CVE-2020-26145
Broadcast and multicast frames should never be fragmented. Several devices
process broadcasted fragments as normal unfragmented frames. Moreover, some
devices accept plaintext fragmented broadcast or multicast frames in
protected Wi-Fi networks. An adversary can abuse this to inject packets
by encapsulating them in a fragmented plaintext broadcast frame. Even
unicast packets can be encapsulated in broadcast Wi-Fi frames and hence
be injected.

Change-Id: I3181a05e177cf9374a14edb748bc5001d058e0f3
CRs-Fixed: 2893212
2021-05-13 15:32:23 -07:00
Kai Chen
c089dc5216 qcacmn: remove duplicate definition for radiotap header
Move duplicate radiotap header definition to header file

Change-Id: Ieb833f26c6c433c7917cc2196d4957102501672c
2021-05-13 15:32:20 -07:00
Varsha Mishra
6c720adf28 qcacmn: Enable peer authorize by default
Drop non-EAPOL frames from unauthorized peer in security mode.
Enabling this feature by default with this change.

Change-Id: I9878b37088149e34f456a38a9c0f722e4c5ee49a
CRs-Fixed: 2943789
2021-05-13 15:32:16 -07:00
Nandha Kishore Easwaran
718d6aeece qcacmn: Add configurable option for MSI interrupts
Provide multiple combinations to configure the msi interrupts
of DP and CE based on the number of MSIs available in the platform.
Number of MSIs used for CE and DP can be changed by modifying the
MSI assignment table in platform driver. Best possible mask for that
MSI is automatically chosen based on predetermined settings.

Change-Id: I02b44fb033631d69d97f2d8d2d3f698541d37aad
2021-05-13 12:33:04 -07:00
Manikanta Pubbisetty
2359af8cea qcacmn: defer reo queue descriptor free
In some RX backpressure cases, we see the HW accessing REO
queue descriptors of a deleted peer(after the queue descriptors
are unmapped/freed), this is leading to SMMU faults. There are
cases where the HW is accessing the stale REO queue descriptors
after ~12seconds after the queue descriptors were freed.

In order to avoid the problem, HW team has suggested to defer
unmapping/free of REO Queue descriptors. Add the logic for the
same.

Change-Id: I5b1fb966dc75b963ccc9d22c40272c8d1d8d6026
CRs-Fixed: 2939223
2021-05-13 12:32:59 -07:00
Linux Build Service Account
6fdeb852e0 Merge "qcacmn: Fix smmu fault for IPA TX buffer unmapped" 2021-05-13 10:09:57 -07:00
Gerrit - the friendly Code Review server
a3c3ef14a8 Merge changes into wlan-cmn.driver.lnx.2.0 2021-05-13 09:36:46 -07:00
Jianmin Zhu
2c9dd68894 qcacmn: Fix smmu fault for IPA TX buffer unmapped
It's regression of change: qcacmn: Fix smmu fault for tx buffer unmapped.
Only 1 tx buffer is smmu mapped for IPA with it.
During STA-SAP tethering, when IPA access 2nd tx buffer, smmu fault
happens.

Remove qdf_assert_always since it already exists in
__dp_ipa_handle_buf_smmu_mapping.

Change-Id: Ife8ed17d85a8bcfc507c312001af4b905c9b3a27
CRs-Fixed: 2937435
2021-05-13 08:21:39 -07:00
Yeshwanth Sriram Guntuka
81c70ce74b qcacmn: Modify check to ensure consecutive PN for frags
Modify check to ensure packet number is consecutive for
fragments and drop the fragments if the check fails.

Change-Id: I2ca0ef6211594ba35aae894e6a385d3d5778bff6
CRs-Fixed: 2874369
2021-05-13 06:20:10 -07:00
Yeshwanth Sriram Guntuka
df22eee823 qcacmn: Register API to flush frags in dp peer ops
Register dp_peer_flush_frags API in dp peer ops
for flushing fragments for a particular peer.

Change-Id: Ia179d3160bdc306ec965c465134042c66a0c40a6
CRs-Fixed: 2874366
2021-05-13 06:20:05 -07:00
Yeshwanth Sriram Guntuka
817481b5e3 qcacmn: Add CDP intf to flush fragments for a particular peer
Add CDP interface support for flushing fragments for a
particular peer.

Change-Id: Ic59843408037b9c858599be13727422c2e3031cd
CRs-Fixed: 2875946
2021-05-13 06:20:01 -07:00
Abhishek Singh
532d6ae75f qcacmn: Do not drop the beacon in case of RSN len is less than 2
For security cert TC, RSNIE length can be 1 but if the beacon is
dropped, old entry will remain in scan cache and cause cert TC
failure as connection with old entry with valid RSN IE will pass.

So instead of dropping the frame, do not store the RSN pointer so
that old entry is overwritten.

Change-Id: I2fe4d2dd2352be6850f7a18a2ec829733ded7ee8
CRs-Fixed: 2944120
2021-05-13 01:12:56 -07:00
Karthik Kantamneni
6370333013 qcacmn: Make QDF NBUF history size configurable
Some of the targets require more QDF nbuf history
size, so making the size configurable keeping
default same.

Change-Id: Ic4ac43a1eacb1e58c0a05b794349525d614d7fc8
CRs-Fixed: 2929968
2021-05-12 20:57:57 -07:00
Yeshwanth Sriram Guntuka
8c4c0044cb qcacmn: Do not intrabss forward EAPOL frames
Do not forward EAPOL frames that have DA different
from the SAP vdev mac addr.

Change-Id: I23959e38b5cbd845d369bebd6913150eca4551bf
CRs-Fixed: 2860248
2021-05-12 18:42:31 -07:00
Abhishek Singh
7ea47e200a qcacmn: Remove unused connect IEs from struct cnx_mgr
Remove unused connect IEs from struct cnx_mgr.

Change-Id: Ib137104e260899d8abc460b1b4213de7099a0e8d
CRs-Fixed: 2942865
2021-05-12 16:34:51 -07:00
Aditya Kodukula
f0b0951d8a qcacmn: Move Rx diag event processing to dedicated work queue
Firmware generates wmi Rx diag events every few milliseconds,
and processing the same in system shared work queue may lead to
work queue lock-up detection. Hence, move Rx diag event processing
to dedicated work queue.

Change-Id: I10cdde317794e35bc6d10677ab76ea24a66e1880
CRs-Fixed: 2941409
2021-05-11 19:22:07 -07:00
Amruta Kulkarni
2b7f792138 qcacmn: Add new assoc and nonassoc ini for 6g scan
Add new ini's for assoc active and passive dwell time
for 6g. These will be applied if STA is connected.

Change-Id: I680fbd3038968ecf6ff9920fff982456135bfd77
CRs-Fixed: 2941359
2021-05-11 13:22:26 -07:00
Karthik Kantamneni
ad0f442d8f qcacmn: Add delayed reg write support based on EP power state
Even though HP/TP updates are posted writes at CPU level, they
are getting blocked until soc comes out retention which is hogging
CPU.

To avoid this if EP is in low power state update HP/TP writes from
delayed work context. In delayed work vote for EP awake wait till it
comes out low power state and then proceed to HP/TP update.

Change-Id: I61d5795f58f25f850b5a9ad4d30e3181dba23713
CRs-Fixed: 2913495
2021-05-11 08:03:35 -07:00
Yeshwanth Sriram Guntuka
35b9bf6c44 qcacmn: Fix possible OOB access of rx_refill_ring_history
In monitor mode, when the channel is set to any 2G band channel
the mac_id passed to dp_mon_process API is 1. As part of
dp_rx_buffers_replenish, refill history is logged and the
mac_id is used to index into the history array. The array is
of size 1 and OOB access would happen when ring_num which
is the mac_id, passed in is 1.

Fix is to pass the pdev->lmac_id instead to
dp_rx_refill_ring_record_entry and add ring_num sanity check.

Change-Id: Id824ec8b01e7923ad74771d5f34a25f5fccb65f3
CRs-Fixed: 2939544
2021-05-11 08:03:31 -07:00
Venkateswara Swamy Bandaru
38f2c1baf2 qcacmn: WMI changes for setting eht op
Add WMI support for setting eht op in vdev start wmi command.

Change-Id: I7eb0e7e5ace9d78dd060e207c3227d86c3882bee
CRs-Fixed: 2858003
2021-05-11 08:03:27 -07:00
Amir Patel
770ebeb20f qcacmn: Reduce log level to suppress print
For every channel change, a print is displayed onto console.
reduce log level to suppress print.

CRs-Fixed: 2921656
Change-Id: Ib300ecc17c09412aa6502cc45ec1c4b7da3b54ce
2021-05-11 05:54:28 -07:00
Abhishek Singh
0170051831 qcacmn: Get current candidate from roam command for roam resp
In cm_update_scan_db_on_connect_success, the current candidate is
always retrieved from connect req even when the resp is for reassoc
this can lead to invalid pointer access.

Fix this by getting current candidate from roam command for reassoc
resp.

Change-Id: I99afc49abd7581cf43279654a5fe1e67e2448bd0
CRs-Fixed: 2941836
2021-05-11 01:44:03 -07:00
Huashan Qu
36af7eda02 qcacmn: Add self reassoc and Hw mode change logic for LFR2
Add self reassoc and Hw mode change logic for LFR2.

Change-Id: I366bd6ba3650343a2f829359a2a42695f089d121
CRs-Fixed: 2941760
2021-05-10 14:48:06 -07:00
Utkarsh Bhatnagar
141c21c4a7 qcacmn: Add support for TDLS 11ax
Add support for TDLS 11ax

Change-Id: Iec8d9d7356390c6012269ae2840ff2185f61f9da
CRs-Fixed: 2925247
2021-05-10 09:03:12 -07:00
Karthik Kantamneni
28ef474a07 qcacmn: Fix compilation error for modulo operator
In some of the targets modulo operator assembly API's
are not defined causing compilation error.
To avoid this use qdf based API's for modulo operations.

Change-Id: Ibc69b69aa38cadff5daa8dee8b65ceaacfe997b7
CRs-Fixed: 2940281
2021-05-10 09:03:07 -07:00
Guisen Yang
3516552a3c qcacmn: Disable obss scan before suspend
When obss scan is enabled, FW will trigger scan periodically by
a timer. If a scan was triggered, FW need to access host memory
for data transfer. Occasionally, suspend may happen during one
scan, then FW is unable to access host memory and fw will crash.
So disable the obss scan before suspend.

Change-Id: Ie507da929a3701473cb57888e96e702e34d4c95a
CRs-Fixed: 2927239
2021-05-10 04:06:03 -07:00
Karthik Kantamneni
841fa1bd6a qcacmn: Add support configure EP vote feature based on pm states
Add support to configure EP vote feature based on pm states

Change-Id: Ia424d364248283da8e978f924fd421c1b5f4b888
CRs-Fixed: 2939884
2021-05-08 04:18:34 -07:00
Gururaj Pandurangi
c7c724572a qcacmn: Avoid obj mgr logging in console for MCC
Allow object manager logging in console only for WIN as
it's a critical print. For MCC, this print will not be
logged to avoid console lock and excessive logging.

Change-Id: I09b6dc80486cfa727c130f3fe205f504a46dd0c0
CRs-Fixed: 2938507
2021-05-07 22:54:02 -07:00
Alan Chen
0fedc36000 qcacmn: Add ksize check for calling qdf_mem_prealloc_put
In perf builds, add a ksize check and call qdf_mem_prealloc_put()
only when size is greater than 4K to avoid lookup overhead.

Change-Id: If01a7cbeaf1ee7f514f16296340169a937dafa78
CRs-Fixed: 2936464
2021-05-07 22:53:58 -07:00
Ananya Gupta
0561c4ce02 qcacmn: Change log level of error prints
Logs are printed inside a spinlock which was held for
losing more than 2 seconds.
To fix this, reducing log level so it is not printed
in the console and instead in driver logs.

Change-Id: Ib510ddc1b5bff63db012b45ffa0280eedc356cc6
CRs-Fixed: 2938590
2021-05-07 20:51:55 -07:00
Sandeep Puligilla
3858136edf qcacmn: Possible OOB read while parsing MBSSID IE
If MBSSID ie contains only header and no payload
then current logic can cause OOB read.

Added validation check for length of IE before
accessing MBSSID IE payload.

Change-Id: Id8b34e5f516f1a1c85bc7d93d9128cad29393e9d
CRs-Fixed: 2838631
2021-05-07 11:32:00 -07:00
Yeshwanth Sriram Guntuka
05f4bb3104 qcacmn: Return the entry size in bytes from srng
hal_get_entrysize_from_srng returns the entry size
in dwords but the caller expects in bytes. This results
in insufficient data to be recorded for CE event.

Fix is to left shift the entry size by two bits in
hal_get_entrysize_from_srng so that the entry size
value returned is in bytes.

Change-Id: If532da7abe5ce9c293969f0052455085f18b1926
CRs-Fixed: 2935196
2021-05-07 07:18:10 -07:00
Vignesh Mohan
fdaf4853b2 qcacmn: Fill primary 160MHz center for 320MHz channel
Fill the primary 160MHz segment centers (mhz, ieee) for a 320MHz
channel in the given channel param.

Change-Id: I422bc90fabd2e2ecaa6732a6719218fcc18c19f2
2021-05-07 05:05:09 -07:00
Pavankumar Nandeshwar
635a1c8eb9 qcacmn: update the wmi context during unregister
When unregistering wmi handlers, the position of the
old handler is replaced with the last handler in the table.
But at this stage only handler was getting replaced, but
not the context. Hence, make sure to update the context
as well.

Change-Id: If90ea9d7663fb105e8e8ad7d7e6c70da20264e44
2021-05-06 22:52:38 -07:00
Vevek Venkatesan
97c53c4877 qcacmn: add Tx descriptor history in Tx and comp rings
Add the history support to log Tx descriptors programmed
in Tx and completion HW rings.

Change-Id: I60954c93e2595e7dad1251c459eed8afc761e917
CRs-Fixed: 2924614
2021-05-06 13:49:54 -07:00
Lin Bai
c672a940aa qcacmn: Add diag API to report EVENT_WLAN_BRINGUP_STATUS
Implement API to report DIAG event EVENT_WLAN_BRINGUP_STATUS
to user-space.

Change-Id: Id344fc62b511de71da990aa37a2bca710ff8afda
CRs-Fixed: 2922103
2021-05-06 10:44:28 -07:00
Surabhi Vishnoi
8c88323efe qcacmn: Add support to handle control frames in mgmt txrx
Firmware sends control frames in same wmi path as mgmt
frames. Currently, these frames will be dropped by mgmt
txrx component, so add support to handle control frames
in mgmt txrx component.

Change-Id: Ia046c1b3b25d40429a859e9c2659126b3d5eb3c0
CRs-Fixed: 2932123
2021-05-06 10:44:24 -07:00
Venkateswara Swamy Bandaru
77fb0e3ac1 qcacmn: Fix compilation error
Fix compilation error when WLAN_FEATURE_11BE is enabled.

Change-Id: I1f762f7f2e8c257d4b010a7eac6c888a08a1e7af
CRs-Fixed: 2939040
2021-05-06 06:23:51 -07:00
Ananya Gupta
9f3b9ca800 qcacmn: compiling WDI3 version of IPA
Depreciated IPA APIs are currently getting compiled.
To fix this, adding linux kernel version check

Change-Id: I2288db34c09d60047c67a5df9081de08a6c2f62b
CRs-Fixed: 2927413
2021-05-06 06:23:47 -07:00
Santosh Anbu
8394348196 qcacmn: Add API to check if VDEV is in UP_ACTIVE state
With the addition of MLO_SYNC_WAIT substate, now the active status
of the VDEV will be indicated by ACTIVE substate under UP state.

Add API to check if a given vdev is in UP_ACTIVE state.

Change-Id: Ia858765b07582f89e0eaa041d56c7f2aae6f1528
CRs-Fixed: 2924322
2021-05-06 01:27:58 -07:00
Bapiraju Alla
17f12e5b39 qcacmn: Fill peer assoc mlo params in peer assoc request
Fill peer assoc mlo params in peer assoc request command.
Also add definitions to the WMI_SERVICE_11BE.

Change-Id: Ied7959e022ee27f3bd698b84dc801491175f85b3
CRs-Fixed: 2934417
2021-05-05 04:47:01 -07:00
Karthik Kantamneni
c68ad7037a qcacmn: Add TX descriptor history support
Add history to log HW TX descriptors programmed in TX ring.

Change-Id: Ia17e5557115f20508ed22c045941c0645c46ef1d
CRs-Fixed: 2928996
2021-05-05 00:54:13 -07:00
Wu Gao
e7c7eb280a qcacmn: Add more debug information when get invalid paddr
When host failed to find out vaddr by paddr from FW, output more
information for debug further.

Change-Id: I65c4965c12c2ffa3fe2a26a82df01d1b91501c73
CRs-Fixed: 2925194
2021-05-04 15:04:24 -07:00
Venkateswara Swamy Bandaru
1ac1976b57 qcacmn: Vdev start changes for supporting 11be
Add support for setting ehtop on vdev start wmi command.

Change-Id: Ia710cfe082dafd6d36e232253fa2f5ba6d7512d3
CRs-Fixed: 2857805
2021-05-04 10:58:39 -07:00
Subrat Mishra
fcb71e35cf qcacmn: Neighbour peers RSSI update debug logs
Add Neighbour peers RSSI update debug logs.

Change-Id: I9de84c94d82aeae641facaf4fd19de8d644d3ff6
CRs-Fixed: 2927427
2021-05-04 06:53:29 -07:00
Jingxiang Ge
9827e7edd8 qcacmn: Reject vdev destroy if not LOGICALLY_DELETED state
issue happen when wpa_supplicant is creating vdev
and schedule_thread is destroy the same vdev.

if state is not WLAN_OBJ_STATE_LOGICALLY_DELETED,
return back here, otherwise it will cause the creating
vdev_id to be invalid.

Change-Id: I574838bca574add497f1167c75ede44938b7bf17
CRs-Fixed: 2935068
2021-05-04 04:53:48 -07:00
Yeshwanth Sriram Guntuka
d6b21e3e66 qcacmn: Allocate memory for fisa pkt history separately
Fisa packet history is around 6KB for each sw fisa
flow entry and this is part of the dp_fisa_rx_sw_ft
structure. The total size of the SW FT as a result is
around 830KB and the higher order memory allocation via
kzalloc for this could fail in low/fragmented memory
scenarios.

Fix is to allocate memory for FISA pkt history separately
and attach it to the SW FT entry.

Change-Id: I7296d7269c1b86ec38ea1668e8a0893335bbdb6f
CRs-Fixed: 2936353
2021-05-03 20:11:47 -07:00
Pragaspathi Thilagaraj
58a8a97272 qcacmn: Check the sae single pmk ini for scan entry
Currently when updating the single pmk capability for an AP,
the driver only changes for the sae single pmk OUI advertised
by the AP and not the ini value. This causes the crypto entry
for the AP to be updated with single pmk flag to true even when
the ini is disabled.

So check the sae single pmk ini also to update the scan entry
as sae single pmk bss.

Change-Id: I2ae16c8da5af397b041723f9d5a3b2d8a6e7c986
CRs-Fixed: 2935440
2021-05-03 15:03:22 -07:00
Lincoln Tran
32780dcf1c qcacmn: Add helper API to set AP power type
Add an API to set the AP power type and then recompute the current
channel list.

Change-Id: Iacd4d3244f601836f3ed0eae725eaa6375a3584c
CRs-fixed: 2934625
2021-05-03 12:53:10 -07:00
Hariharan Basuthkar
64fea295c5 qcacmn: Add support for 6% Transmit power scale
In WMI_HOST_TP_SCALE, add an option to support 6% transmit power scale
configuration.

Change-Id: I11a67f0efd13ba2c7f2d8d546643a1af37f33613
CRs-Fixed: 2936987
2021-05-03 10:51:47 -07:00