نمودار کامیت

1240 کامیت‌ها

مولف SHA1 پیام تاریخ
Amit Mehta
1db627cc73 qcacmn: Distinguish EAPOL-Key msg 4/4 from 2/4 based on Key Nonce
IEEE 802.11be adds the MAC Address KDE into the EAPOL-Key msg 4/4 when
MLO is used and as such, the previously used check for Key Data Length
value 0 is not sufficient for recognizing the EAPOL-Key msg 4/4 anymore.
Also check for an all zero Key Nonce value since that field is supposed
to be zero in EAPOL-Key msg 4/4 and it has to be a random value in
EAPOL-Key msg 2/4.

Change-Id: Iafb2f0e59a3fd52fa47317f8f3daff3f115271d1
CRs-Fixed: 3380806
2023-01-20 22:11:56 -08:00
Mohammed Ahmed
e1de611cdd qcacmn: add SSR host log collection API
Current code does not have functionality to collect host driver logs
upon SSR.
Fix this by adding host log collection API for SSR case.

Change-Id: I2bb848e59ad87da52446fcb8d18367c1b0768cf9
CRs-Fixed: 3339916
2023-01-19 18:41:07 -08:00
David Oladunjoye
bee501dcb7 qcacmn: Return error when unpermitted character is parsed in ini
Currently, when an unpermitted character is added to ini, driver
flags as an unknown config item and continues parsing. This could
be an issue. Change is to return error when invalid character is
parsed in ini.

Change-Id: I0249d187f0e05a31dd256d5de56798a575903e5b
CRs-Fixed: 3354669
2023-01-17 05:30:11 -08:00
Ashish Kumar Dhanotiya
8762881511 qcacmn: Add new self recovery reason QDF_HOST_WAKEUP_REASON_PAGEFAULT
Currently there is no recovery reason for host wakeup due to pagefault.
With this change add QDF_HOST_WAKEUP_REASON_PAGEFAULT for host wakeup
because of pagefault failure.

Change-Id: Id74a79786009f529a9ec2cf3464ea7adcd67895c
CRs-Fixed: 3378910
2023-01-14 22:09:53 -08:00
Amit Mehta
7e50aa48ab qcacmn: Log additional EAPOL packets
Add changes to log additional EAPOL packet types.

Change-Id: I02f1de89f7e0fcf68cea20208df1ed153126852d
CRs-Fixed: 3370979
2023-01-11 06:53:40 -08:00
Pavankumar Nandeshwar
fd6fed3e07 qcacmn: Cleanup the tx desc cleanup logic
Cleanup the tx desc clean up logic used in
direct switch and umac reset cases.
The excess code being removed tries to
get the next descriptor address in boundary
conditions is not useful, as the descriptor
extracted this way will be overwritten
immediately in the beginning of next iteration
of the loop.

Change-Id: Ibcd873719929b94147152ff48205774d3ed4f452
CRs-Fixed: 3371831
2023-01-10 05:31:53 -08:00
Sai Rupesh Chevuru
88dd4c6970 qcacmn: IGMP leave message handling in MLO MCAST
IGMP leave message handling in MLO MCAST scenarios.

Change-Id: Ic0ac16dbe75b4ef2b27e97be3f42c498b503ca06
CRs-Fixed: 3359488
2023-01-06 00:28:12 -08:00
Asutosh Mohapatra
1ade380fc3 qcacmn: Use mac_addr pointer as constant
Use mac_addr pointer as constant in wlan_hdd_ml_sap_get_peer,
hdd_set_mld_address and use the same for consecutive APIs.

Change-Id: I3ab7b0f3c03e9175c62179029efb53fb9fe75277
CRs-Fixed: 3342115
2023-01-02 15:01:22 -08:00
Himanshu Batra
5ea3ebf775 qcacmn: Change to handle ML reconfig link delete
Change to handle ML reconfig link delete

Change-Id: Iaf743a1a61534f2f4bb12be7fccad48e67b81c12
CRs-Fixed: 3346537
2022-12-27 11:08:54 -08:00
Tallapragada Kalyan
36ed11fcdd qcacmn: save flow related fields from TLV to SKB CB
flow related fields like flow_idx_invalid and
flow_idx_timeout are needed to send the packet
to PPE_VP hence need to be saved in SKB CB

CRs-Fixed: 3359237
Change-Id: I2166566c53641f6569f69ff316d1bafb67a828d0
2022-12-26 22:50:09 -08:00
Nanda Krishnan
97f88fb874 qcacmn: New Alloc API for DS
Requirement:
In skb recycler, if recyler module allocates the buffers
already used by DS module to DS, then memzero, shinfo
reset can be avoided, since the DS packets were not
processed by SW (host).
Hence, we will achieve good KPI with less CPU
utilization.

Fix:
Implemented an new qdf wrapper API qdf_nbuf_alloc_ppe_ds
in wifi driver, which in turn invokes
__netdev_alloc_skb_no_skb_reset API to linux module.
With the use of new netdev_alloc API shinfo reset
will be avoided for DS used buffers alone.
Skb recycler changes are delivered already via
4360331

Change-Id: I3fe8dc07ca12c01136eaee4fcdb1ff6036f80f74
CRs-Fixed: 3350807
2022-12-26 03:23:57 -08:00
Tiger Yu
ba6c61a462 qcacmn: Remove the export symbol for static variable and function
Fix the compiling issue by removing the export symbol for static
qdf_timer_clean and mem_debug_disabled.

Change-Id: I01f886e04af2f294ed9cb93afdbb69d7d8b9f2ee
CRs-Fixed: 3363506
2022-12-22 07:04:24 -08:00
Jeff Johnson
161c891e60 qcacmn: Add qdf_napi_disable() abstraction
Linux API napi_enable() is abstracted, but napi_disable() is not.  Add
an abstraction so that all of the native NAPI API calls in HIF can be
changed to use QDF abstractions.

Change-Id: I26e4c1d301dc6744be19b3f4142542aefe0e6fec
CRs-Fixed: 3364272
2022-12-21 13:54:58 -08:00
Jeff Johnson
49e3273400 qcacmn: Support upstream 6.1 NAPI changes
Commit b48b89f9c189 ("net: drop the weight argument from
netif_napi_add") was introduced in Linux 6.1.  As described by the
subject, this removes the weight argument from netif_napi_add().

This was preceded in Linux 5.19 by commit 58caed3dacb4 ("netdev:
reshuffle netif_napi_add() APIs to allow dropping weight") which added
new APIs to call when a non-default weight wishes to be sent.

QDF function __qdf_netif_napi_add() is the abstraction of
netif_napi_add(). Update the implementation of this abstraction to
call either netif_napi_add() or netif_napi_add_weight() based upon
kernel version.

Change-Id: I4817614408c6eb2d4741444efc9db3a79a200550
CRs-Fixed: 3364271
2022-12-21 13:54:49 -08:00
Jeff Johnson
69cd76d3ad qcacmn: Cleanup QDF NAPI ENHANCED_OS_ABSTRACTION implementation
Currently the ENHANCED_OS_ABSTRACTION implementation of some of the
NAPI QDF APIs are directly calling Linux native APIs rather than
calling the __qdf static inline abstraction APIs.

An upcoming patch modifies the static inlines to handle changes made
to the NAPI APIs in Linux kernel versions 5.19 through 6.1, so update
the ENHANCED_OS_ABSTRACTION implementation to use the static inlines
so that the version-specific changes only need to be made in one
place.

Change-Id: I90473a8495e923c65d4e390057c421b6fc60f170
CRs-Fixed: 3364270
2022-12-21 13:54:39 -08:00
Xiaoning Ma
4b313c5aac qcacmn: Fix compile issue for WLAN_QCOM_VA_MINIDUMP
Add missing header file to avoid compile issue when
WLAN_QCOM_VA_MINIDUMP is enabled.

Change-Id: I2d413560f4cf6a5f9e6cce73d8aee723e963104c
CRs-Fixed: 3356409
2022-12-14 23:15:53 -08:00
KARTHIK KUMAR T
a04069265f qcacmn: Add mlo_mcast cb_ftype
Add mlo_mcast cb_ftype in the cb_ftype enum

Change-Id: I857da8952af500eca9a8e04555937085b3c3cfb2
CRs-Fixed: 3354564
2022-12-13 05:48:19 -08:00
Yeshwanth Sriram Guntuka
9fc190e537 qcacmn: Remove QMI QDF abstraction APIs
Remove QMI QDF abstraction APIs as QMI is now
added as a non converged component.

Change-Id: I91acd4560d456396aaebdbfbd82f71bf5c2ed4f6
CRs-Fixed: 3349631
2022-12-03 22:19:58 -08:00
Jia Ding
19a0237072 qcacmn: Properly declare nbuf smmu map unmap
With NBUF_MEMORY_DEBUG=n and IPA_OFFLOAD=y, below errors are seen.

qdf/linux/src/qdf_nbuf.c:943:12: error: no previous prototype for function
'qdf_nbuf_smmu_map_debug' [-Werror,-Wmissing-prototypes]

qdf/linux/src/qdf_nbuf.c:955:12: error: no previous prototype for function
'qdf_nbuf_smmu_unmap_debug' [-Werror,-Wmissing-prototypes]

Currently above two APIs are only declared with NBUF_MEMORY_DEBUG=y.
Checking their definitions, could see that they have two variants
with NBUF_SMMU_MAP_UNMAP_DEBUG=y|n and they should only be valid
with IPA_OFFLOAD=y since IPA API is referenced in them.

Hence properly declare qdf_nbuf_smmu_map_debug() and
qdf_nbuf_smmu_unmap_debug() so that they're only valid with
IPA_OFFLOAD=y. With that, two variants are still kept.
With NBUF_SMMU_MAP_UNMAP_DEBUG=y, smmu map and unmap operations
are tracked. With NBUF_SMMU_MAP_UNMAP_DEBUG=n, no trackings are
maintained.

Change-Id: I83b08b1152d98b3efed3e52e564af0ebfbe5a7f7
CRs-Fixed: 3348594
2022-12-02 20:08:16 -08:00
Jeevan Kukkalli
b0b3b2a793 qcacmn: Validate nbuf while processing MPDU/MSDU level TLVs
nbuf could be freed when some error conditions are hit so
always validate nbuf while processing MPDU/MSDU level TLVs.

Change-Id: I5e0756bc8ba0a8c68c6ce8d2886b5b63068626a0
CRs-Fixed: 3318966
2022-11-26 17:40:21 -08:00
Roopavathi Lingampalli
edc0d60122 qcacmn: Add new QDF API's to handle napi requirements
Add new QDF API's to handle napi, softirq related handling
in rx thread and rx refill thread.

Change-Id: I0f371c89e65d8b20f059c56097bac07ec1e19cc9
CRs-Fixed: 3341804
2022-11-25 16:32:44 -08:00
nobelj
88f6945a63 qcacmn: fix copyright comment
fix copyright comment

Change-Id: I3e823c0846a00f43471e902fd5d491adb592342e
CRs-Fixed: 3317602
2022-11-25 14:33:17 -08:00
Neha Bisht
5d0b7ea33f qcacmn: Create a list of skbs to be freed at once
Create a list of skbs to be freed at once in dp tx completion path

Change-Id: I42129b4306206f7224ceabc87d07e2a87b8fcab6
CRs-Fixed: 3274945
2022-11-25 12:35:45 -08:00
Devender Kumar
ef32f35aed qcacmn: Fix for Header File inclusion
Compilation is failing due to Missing definition
of KERNEL_VERSION as the Header file is added
before including <linux/version.h>.

Fix is to move the Header file at the end.

CRs-Fixed: 3338337
Change-Id: I83fc448becc4af81df9b4c7b3fe9193875c7f6f1
2022-11-25 00:08:34 -08:00
jinbaoliu
161650dffa qcacmn: Fix failing to distinguish between EAPOL M2 and M4
Currently we distinguish EAPOL frames by taking the secure bit in key
information field into account. This is sometimes error because for WPA
handshake M3/M4 secure bit is 0 (GTK is not included in M3) whereas for
WPA2 handshake M3/M4 secure bit is 1 for WPA2 handshake. This change uses
the ack bit in key information field to differentiate M1/M3 from M2/M4,
then uses the key data length as well as Key Mic and Encrypted Key Data
in key information field together to identify EAPOL M2 and M4 frames.

Change-Id: Iac88bc5b942415edee08dc4a98dbd4e811cb8604
CRs-Fixed: 3327876
2022-11-23 23:40:03 -08:00
Yeshwanth Sriram Guntuka
1d310855fa qcacmn: Add QMI module id
Add module id for QMI.

Change-Id: I44f363b45a6e43ebdf9a43ca266694e6e832f87b
CRs-Fixed: 3338288
2022-11-19 05:48:08 -08:00
Pavankumar Nandeshwar
d1ff8e1e65 qcacmn: Enable tx descpool clean up logic for ppe ds
Enable tx descpool clean up involving buffers cleanup
for ppe ds feature.

Change-Id: Iedefd312b58266e7a21978931838264518bc3d1e
CRs-Fixed: 3313738
2022-11-16 11:51:00 -08:00
Kai Chen
83521665e6 qcacmn: Add debug counter for monitor mode
Add debug count for count MPDU received based on preamble type,
reception type, UL/DL and user for max 4 user for MU monitor
mode

Change-Id: I87f1553e1f2f8276501366a825d629cf051d8a80
CRs-Fixed: 3326272
2022-11-14 16:20:25 -08:00
Sushant Butta
9a6e6ec056 qcacmn: Enhancements of SKB Frag Debug Framework
Enhancements of SKB Frag Debug Framework as per
Waikiki monitor architecture.

Change-Id: Iea336348c0c4f6a5f40ea16777298dd529870aee
CRs-Fixed: 3300916
2022-11-11 03:55:57 -08:00
Yeshwanth Sriram Guntuka
94c2176709 qcacmn: Add qdf_get_ipa_smmu_enabled stub API
Add qdf_get_ipa_smmu_enabled stub API when IPA_OFFLOAD
config flag is disabled and SMMU S1 translation config
flag is enabled to avoid compilation issue.

Change-Id: Ic7291aacf2ca0008bfe112e689fc39d14d99b16c
CRs-Fixed: 3317536
2022-11-01 22:39:44 -07:00
Jeff Johnson
40e6fd1cdf qcacmn: Fix misspelling of "conversion"
The following change introduced a misspelling of "conversion", so fix
it.
- Change-Id I9f8fa776c65cbad84fac5e8c2f65b3fce1386e20
  qcacmn: update RSSI specific parameters in mon pdev

Change-Id: I019f929c09ad4e1de21ed9c7ac485a14f82d786c
CRs-Fixed: 3319342
2022-10-28 01:52:27 -07:00
Jeff Johnson
db19d5296d qcacmn: qdf: Remove obsolete suppressed logging macros
The original implementation of suppressed logging used identifiers
with a misspelling of "suppressed."

Change [1] renamed the identifiers, but for 2 public functions it
defined macros for the original names to keep from breaking existing
clients.

Change [2] updated the only existing client to use the new names.

Now that the old names are no longer used, remove the macros.

[1] Change-Id I0107b157374046ab8f3467801563c02f0f2651fa
    qcacmn: qdf: Rename misspelled "suppressed" variables/functions

[2] Change-Id I4fcd506b39cedd6f094f93ee900cf9ce8be759c1
    qcacmn: Use renamed QDF suppressed logging APIs

Change-Id: I78f3b245b355ba937b15fdfa5b4834fb58a62a62
CRs-Fixed: 3313687
2022-10-26 11:37:12 -07:00
Jeff Johnson
6487fc4371 qcacmn: Fix misspellings of "whether"
The following change introduced misspellings of "whether", so fix
them.
- Change-Id I50b747710eb3c49eab60c81bbc61e75e2f8650ed
  qcacmn: Handling of IGMP packets in MLO Multipass

Change-Id: I09891388e45a210457d46fb3528efdd5a32905dd
CRs-Fixed: 3319323
2022-10-26 02:53:22 -07:00
Jeff Johnson
b24581bf28 qcacmn: qdf: Rename misspelled "suppressed" variables/functions
Multiple QDF rate limit identifiers use a misspelling of the word
"suppressed" so fix those misspellings. For two public functions
create macros with the old names to avoid breaking existing clients.

Change-Id: I0107b157374046ab8f3467801563c02f0f2651fa
CRs-Fixed: 3313685
2022-10-25 20:10:31 -07:00
Vishal Miskin
39042cfc1a qcacmn: Add support to parse a string into int32 array
Currently there is no api to parse a string to int32 array.

Write an api to parse a string to int32 array.

Change-Id: I2982a1bfeff94288a1bd76d8f4d87ea2eac934b2
CRs-Fixed: 3304318
2022-10-22 10:00:20 -07:00
vijaraj
d5104c49a5 qcacmn: Modify qdf_eapol_pkt_type_to_subtype() to log EAPOL Start
In the api qdf_eapol_pkt_type_to_subtype(), the EAPOL start
packet is not logged to userspace.

Modify the api qdf_eapol_pkt_type_to_subtype() to support
EAPOL Start logging

Change-Id: Ic985a3f6713d298ae04559a897312fdbadb57275
CRs-Fixed: 3311616
2022-10-21 01:29:42 -07:00
Vishal Miskin
d7ab161dea qcacmn: Add qdf wrapper for hrtimer_add_expires
hrtimer_add_expires added to update absolute timer expiry

Change-Id: Ie2b59322dfd02c22a8082a519b76a0f610adbd44
CRs-Fixed: 3277993
2022-10-20 23:48:51 -07:00
Sai Rupesh Chevuru
ef34b5b9ab qcacmn: Handling of IGMP packets in MLO Multipass
Due to the CCE rule in QCN9224 IGMP packets will be routed
to err ring. When multipass is enabled, perform multipass processing
before handing over the packet to stack.

Change-Id: I50b747710eb3c49eab60c81bbc61e75e2f8650ed
CRs-Fixed: 3275888
2022-10-20 06:10:52 -07:00
Jeff Johnson
61db6e2df1 qcacmn: qdf: Fix additional misspellings
Fix additional misspellings introduced since the last spelling
cleanup.

Change-Id: I04fc6b49c1876b80bdc3547cc50ad7f1e8ad00f2
CRs-Fixed: 3314151
2022-10-18 01:42:44 -07:00
Amrit
ba6c849571 qcacmn: Add support to get absolute value
Add qdf API to get absolute value

Change-Id: Ib543cd5b53a48f6f7209bd95827b32041a34d3fe
CRs-Fixed: 3310875
2022-10-17 18:16:55 -07:00
KARTHIK KUMAR T
ea38e7997e qcacmn: update RSSI specific parameters in mon pdev
Before we are updating RSSI params directly into mon_rx_status
this structure will reset every PPDU this breaks iwconfig,
wlanconfig and monitor packet RSSI values.
Fix added to storing the values in the mon_pdev.

Change-Id: I9f8fa776c65cbad84fac5e8c2f65b3fce1386e20
CRs-Fixed: 3276503
2022-10-17 16:22:51 -07:00
Rajesh Chauhan
391d920327 qcacmn: modify QDF functions for memory allocation and free
CNSS prealloc maintains various prealloc pools of 8Kb, 16Kb, 32Kb
and so on, and allocates buffer from the pool for wlan driver. When
wlan driver requests to free the memory buffer then CNSS prealloc
derives slab_cache from virtual memory via page struct to identify
prealloc pool id to put memory buffer back into the pool.

In kernel 5.17, slab_cache is removed from the page struct. Modify
QDF functions to add headroom at the beginning of allocated buffer
to store cache pointer. CNSS prealloc will store cache pointer in
this headroom during allocation and later use it in identifying
prealloc pool id to put back the buffer.

Change-Id: I2c19b72b82092d553d474a50385ed3095a0fab39
CRs-Fixed: 3312550
2022-10-16 11:00:44 -07:00
Yu Wang
393465dcf4 qcacmn: qdf: Introduce QDF_SSID_FMT and QDF_SSID_REF
Introduce the feature to hide SSID in the logs.

To enable this feature, set CONFIG_WLAN_TRACE_HIDE_SSID to y.
If this feature is enabled, SSID 'my_ssid' will be printed as
'*' in the logs.

Change-Id: Ibdafe1f202de805d9116d780f79f015a8a6bd2ee
CRs-Fixed: 3294362
2022-10-13 18:22:16 -07:00
nobelj
878aebaac1 qcacmn: Add net device operation in os dependent device
Add net device operation in os dependent device structure

Change-Id: Ic519b5731a34c8e3e1a04b73c09ed6cbae21a7c0
CRs-Fixed: 3288210
2022-10-13 15:09:36 -07:00
Jeff Johnson
3bdf954afc qcacmn: qdf: Fix misspellings
Fix misspellings in qdf/...

Change-Id: If61ee47fba94b2bb60f33ab74feda56dbe5cb7bd
CRs-Fixed: 3277902
2022-10-12 23:22:37 -07:00
Yeshwanth Sriram Guntuka
91731902f6 qcacmn: Add QDF abstraction APIs for QMI
Add support for QMI by adding QDF abstraction APIs.

Change-Id: I872c6da0a5d73b8de5320861ba0ff83904c4db5b
CRs-Fixed: 3289745
2022-10-10 07:34:08 -07:00
Jeff Johnson
4c5b6e76fe qcacmn: Properly abstract the Linux bottom half interfaces
When migrating to Linux Kernel v5.19 the following compilation error
was encountered:

i_qdf_defer.h:192:19: error: cast from 'qdf_defer_fn_t' (aka 'void (*)(void *)') to '__qdf_bh_fn_t' (aka 'void (*)(unsigned long)') converts to incompatible function type [-Werror,-Wcast-function-type]
        tasklet_init(bh, (__qdf_bh_fn_t) func, (unsigned long)arg);

This revealed the fact that the QDF bottom half abstraction was not
cleanly implemented. The current implementation freely typecasts the
abstracted signature:
	void (*func)(void *arg)
with the Linux-specific signature:
	void (*func)(unsigned long arg)

This has worked in the past since a void * and and unsigned long are
the same size and hence could be freely converted from one to another.
However the Linux Kernel now supports Call Flow Integrity which
requires that the function signatures must always exactly match.

To address this issue rewrite the bottom half abstraction to use an
intermediate dispatching function, exactly like is already done for
the deferred work abstraction.

Change-Id: I56b5a8ab9515033d8237302300fd6b55ea755633
CRs-Fixed: 3305515
2022-10-06 16:53:10 -07:00
Jeff Johnson
a5d454cfef qcacmn: Remove qdf_exit_thread()
While migrating from v5.15 to v5.19 of the Linux Kernel, a build error
was observed:

ERROR: modpost: "do_exit" [...] undefined!

The reason do_exit is undefined is because Linux Kernel commit
eb55e716ac1a ("exit: Stop exporting do_exit") removed the
EXPORT_SYMBOL() with the justification "there are no more modular uses
of do_exit".

Commit eb55e716ac1a was preceded by commit 111e70490d2a
("exit/kthread: Have kernel threads return instead of calling
do_exit") which details why, since commit 63706172f332 ("kthreads:
rework kthread_stop()"), it is unnecessary to call do_exit().

Note that commit 63706172f332 was introduced in 2009 in v2.6.31-rc1.
Since we do not need to support any kernels before that time, we can
follow the same advice and return instead of calling do_exit().

Currently do_exit() is only called from qdf_exit_thread(). As a result
of the preceding investigation, all former callers of qdf_exit_thread()
have been modified to no longer call it.  Since it is obsolete, remove
it.

Change-Id: I22f27692fa8766df080630b9b0640c259285557c
CRs-Fixed: 3300460
2022-10-06 11:15:50 -07:00
Rajesh Chauhan
fcd8ef9da8 qcacmn: use netif_rx() instead of netif_rx_ni()
In kernel 5.18, netif_rx_ni() is removed. So redefine netif_rx_ni
with netif_rx.

Change-Id: Ia0e43089f028f3bfa71d658d1e64ddeafd32d289
CRs-Fixed: 3298369
2022-10-06 11:15:38 -07:00
Jianmin Zhu
e43ce4ff37 qcacmn: Fix SAP start failed after dual sta enabled
With MLO enabled, MLO STA wlan0 will consumed 3 MAC address, consider 2nd
STA wlan1, p2p and NAN interface,  consumed 6 MAC addresses totally, SAP
failed to start for no MAC address.

To fix it, increase MAC address num to 7 when MLO supported.
Keep max vdev num as 6, no side effect on firmware.

Change-Id: Idbc3b7159ec3ceb42fa8a13718cd7402d6eb8090
CRs-Fixed: 3298515
2022-10-06 03:52:49 -07:00