peer attach failed due to memory allocation failure
which triggered soc restart, as part of soc restart
peer detach tried to free AST hash table and entries
which was not allocated.
For peer hash table and AST hash table free only if
the memory is allocated
CRs-Fixed: 2425963
Change-Id: Ib7a624c91f544f1a8da2b96b4d342a13b9f3b162
RX_BUFFER_SIZE macro got introduced by mistake during rebase. The macro
is present in hal_rx.h. Removing the extra macro.
CRs-Fixed: 2382076
Change-Id: Ia66079d6d4543b4e3fd99e9f0c0376353a92aa9c
Vlan tagged STP pkts are received in host from
wbm exception path with wifi parse error code.
This is delivered to stack. Stats added for wifi
parse error and vlan tagged stp pkt count.
Change-Id: I25af5ab403ee7a46b4abe2f60328314d61587b80
CRs-fixed: 2375575
Currently rx reorder queue setup command is sent from soft irq
context. There exists race condition between resume command sent
from worker thread context and this command sent from soft irq
context. In parallel execution on different cpu cores if the wmi
suspend flag is not sent to false as part of resume command at the
time of sending the rx reorder queue setup wmi command, the command
will not be sent. So serialize the rx reorder queue setup command
by posting to scheduler thread.
Change-Id: Ib4d0fb99df142be39d2d35e7f405130c0747efac
CRs-Fixed: 2410175
Populate LTF size value from TLV for HE and modify
HE_LTF enum value to match with Firmware values
Change-Id: I8e5cce31cbae4aa8722050b06d89c933b74aa752
This rx_desc flag was removed from the function by a previous change
with id Iaa345d04b8d48814f88ed6e2237fc67696f6a20c. This flag is
needed to keep track of whether the nbuf associated with a rx_desc has
been unmapped or not. Set it to 0 when a mapped nbuf is associated with
the rx_desc.
Change-Id: I24e103c5698a556f478a3f7917076d31b5490661
CRs-Fixed: 2393056
- Check for rx_desc.magic before using a rx_desc retrieved from the reo
destination ring via rx_buf_cookie (dp_rx_process). Add stats.
- Check if we end up re-using a rx_desc with rx_desc.in_use=1 in the
replenish path (dp_rx_buffers_replenish).
- Drop RX packet and assert in case MSDU Done failures are seen in
in the TLV during dp_rx_process. Add stats.
- Disable host2rxdma ring mask for MCL. MCL is not expected to be
receiving these interrupts.
Change-Id: Iaa345d04b8d48814f88ed6e2237fc67696f6a20c
CRs-Fixed: 2382076
In some cases non aggregate packets with active BA session land in
2k_jump_error owing to sequence number mismatch.
Fix those cases by sending delba and the next addba is expected to reset
the sequence number
Change-Id: Ib95edf8744761abddb80cf28bf405d6fa52181c8
In case of target recovery clean up the AST entries on
peer before peer cleanup
Change-Id: Ib4f119ec259f0de03b0513a8f0dc8ef4b431f24a
CRs-fixed: 2419890
TX NSS field is not supported from WMB TX completion ring, remove
the NSS print in host TX stats in case introducing some confusion.
Change-Id: I594eb5cd7b2bf88de14f45ff6ad8e3248eb36617
CRs-Fixed: 2350789
Support WLAN IPA WDI 3.0 with SMMU-S1 enabled. Key design
considerations are captured below.
- ring base addresses are passed as struct sg_table and IPA
driver will do the IOVA mapping to IPA domain.
- ring doorbell addresses are passed as physical address and
IPA driver will do the IOVA mapping to IPA domain.
- TX/RX buffers need to be mapped to IPA domain by WLAN driver
via ipa_wdi_create|release_smmu_mapping API.
- IPA doorbell addresses returned from ipa_wdi_conn_pipes are
DDR addresses and WLAN driver needs to do the IOVA mapping
to WLAN domain.
Change-Id: I2398df58c9a9d002af7035f239eda37a86f5d00f
CRs-Fixed: 2422155
In Tx completion handler, nbuf was being accessed after it was
freed in vdev detach path. Fix this by moving the access to nbuf
after NULL check for vdev.
Change-Id: I08bab01bcc2f9d2e739a3897502d2d2b96bf9f43
CRs-Fixed: 2393459
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within dp replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: I61f3adab1208682d36235421f44a048e35df346d
CRs-Fixed: 2418258
Increment number of packets processed per pdev
per interrupt before updating rx histogram
stats counter.
Change-Id: I0d6c59a6a115df168f7755ce94faa90dcc753e13
CRs-Fixed: 2418384
Rx desc pools are reused across wifi up
and wifi down, only nbufs part of these
pools are free during down
Free Rx desc pools during WiFi Unload
CRs-Fixed: 2418941
Change-Id: I5cc3a82d99efd84f51f9eb048cf06da5a4495e55
Add change to skip monitor ring configuration
for smart and lite monitor through dp_set_monitor_mode
API instead will be handled to configure
cdp_txrx_set_pdev_param from caller as required
during restart, stop and up path.
Change-Id: If842399c64601049efdf9233a83ede5ce368802c
CRs-Fixed: 2421573
cdp_rx_indication_ppdu structure is used to indicate ppdu stats to upper
layer. Use the size of this struct instead of hal_rx_ppdu_info struct
while allocating SKB for notifying this event to upper layer.
hal_rx_ppdu_info struct is smaller sized structure and this can cause
invalid access.
Change-Id: I0db5a04f6e8ca8d8d38ddc83bcb7859292b45ba1
CRs-Fixed: 2419923
Compare REO ring descriptor paddr with rx_desc->nbuf->cb->paddr,
possible corruption if they differ.
Change-Id: I064df12495a9934fe2396305a7a4a8cdeacdfd4f
CRs-Fixed: 2398155
Do not print rate statistics on the console or kernel logs. Excessive
logging in kernel messages can lead to kernel panic.
Change DP_PRINT_STATS to not print in kernel logs.
Note that this is an interim solution. Ideally these prints from DP
module should be QDF_TRACE_LEVEL_DEBUG and logged to QXDM. Currently
DEBUG trace level is disabled for DP module.
Change-Id: I54af98eda0dd4ea53ae20f25ced6b03287d8b4e4
CRs-Fixed: 2414635
Compiler threw error 'defined but not used [-Werror=unused-function]'
when macro DISABLE_MON_CONFIG defined.
Wrap those functions by DISABLE_MON_CONFIG, which used only
within DISABLE_MON_CONFIG.
Change-Id: Idd92b9c481d580a6ca3df39963fa98e11d9d0753
CRs-Fixed: 2418584
For low mem config, use user configured max tx descriptors to limit the
allocation of software tx descriptors.
Use dp_txrx_pflow_update_pdev_params function to print stats and to update
pdev param.
Change-Id: I8fa6f0bb8841de68e8dc205ffcb0fde264f1b0e0
CRs-Fixed: 2414452
The rx descriptor may be invalid if RBM is incorrect.
Check the RBM value before fetching the rx descriptor.
Change-Id: I12cc99ceb31b8bbf0127591e1c275b13264eb80c
Several qdf_*_outline() APIs exist which are straight aliases to their
regular qdf_*() counterparts. Remove them, and update any callers to use
the regular APIs instead.
Change-Id: Ibe6e9cced521b93061e89690ab817ceafe49a469
CRs-Fixed: 2408267
Delay counters per TID have been implemented for following types:
1. Linux stack to hw enqueue delay
2. HW enqueue delay to tx completion delay
3. TX interframe delay
4. RX interframe delay
5. RX frame delay from ring reap to networking stack
Change-Id: I836596cbd878a43955c18b4981cb5b7b43d4df5e
In handling addba request, if we receive a request
for a tid that is in IN_PROGRESS state, we ignore
this new request.
Change-Id: I71e3f78cf43f25c184161669a359a4b703cab3cd
Crs-fixed: 2408140
On low memory platform rx_pkt_header tlv is not subscribed to get a
savings of 128bytes in skb. This is required to reduce the skb size from
4K to 2K on 32-bit platforms. Use HTT_H2T_MSG_TYPE_RX_RING_SELECTION_CFG
message to unsubscribe rx_pkt_header tlv for rxdma ring.
Change-Id: Ie684f1ca1de9c824a869b4e13fd0ee1d068004e7
CRs-Fixed: 2408424
Do not process RX packet header TLV for low memory config profile.
Also, drop decapped frames in invalid peer processing function.
Change-Id: Ifc7721bb25d85c7e277bebf4b962d2f1bfea150c
CRs-Fixed: 2395508
wifi up/down will cause soc stop and soc
start which will allocate rx desc pool
array memory for each wifi up
This creates memory fragmentation issue
hence reuse Rx descriptor pool array
across wifi up/down and free only nbufs
CRs-Fixed: 2394666
Change-Id: Ic897c733dfba3d8829e2f2f51099cd615b8a7ea2
qdf_nbuf_cat API used to call skb_free
on src address but was later modified
so that the caller of qdf_nbuf_cat is
responsible for freeing the src memory
Due to this change in the API, the
freeing of src memory on caller side
was not taken care and will lead to
mem leak
Hence add qdf_nbuf_free after calling
qdf_nbuf_cat if it returns success.
If qdf_nbuf_cat returns failure, then
freeing is taken care as part of error
handling in parent function.
CRs-Fixed: 2411320
Change-Id: If50eb9279d0cf26a0cf57444cb69e56f11995720
Check for completion status of the ppdu based on
HTT_PPDU_STATS_USR_COMMON_TLV and
HTT_PPDU_STATS_USR_COMPLTN_ACK_BA_STATUS_TLV.
Update the stats only when completion status is ok else
update retry and failed frames count.
Change-Id: Iac7730715f853746d77873488b7886e7beed467d
CRs-Fixed: 2390383
Add support for reset ast entry and table, also send
ast entry type to upper layers in delete callback
Change-Id: I6b420fba5bab50519e8954a1e796b04bc0768ef8
CRs-fixed: 2384550
When IPA using GSI instead of UC different IPA TX and RX
clients needs to be configured. In this change when IPA
uses GSI configure appropriate TX and RX clients/pipes.
Change-Id: I0302323d91f0cc4256a1b08ddbb1345d0daa2939
CRs-Fixed: 2368003
Replenish buffers consumed during monitor packet processing
and map it to the rx_desc_pool associated with a pdev.
Change-Id: Ia844c92c6b61bbb22ae42d38796aad2f29756b5e
CRs-Fixed: 2407502
VOW stats is an extension of regular stats to capture
all drops per TID. Delay counters per TID are also
included.
Change-Id: If6087f37b32cf9ae4bb405190a358ad3c9750dd2
Some of the print messages in HAL module come very excessively.
Use hal_verbose_debug() API to print them.
CRs-fixed: 2405028
Change-Id: I4b4754af65c00edb571de898527026b6183ef15f
Some of the print messages in Data-path module come very excessively.
Use dp_verbose_debug() API to print them.
CRs-fixed: 2376998
Change-Id: Ibaec3751ce3cbe98492c531548e613c7d17db898
In datapath, some of the messages get printed everytime when packet
is received or sent. This situation ends up in excessive logging which
leads to stability issue.
In order to fix the situation, provide knob through INI to control
excessive logging and create new macro for logging the message which
comes under per packet path.
Change-Id: I2af5f9bf39540f952138aa8308401a387fe62bf1
CRs-Fixed: 2376998