Cleanup logging, usage of %p or %pk will lead to information leak.
Always use %pK instead when ever logging the address.
Change-Id: Id60782855f242175183f88e9f1c2efb9eb578404
CRs-Fixed: 2677373
Cleanup logging, usage of %p or %pk will lead to information leak.
Always use %pK instead when ever logging the address.
Change-Id: Id11e1b52b394eb10bb2b32fc2ee2e04116f98026
CRs-Fixed: 2677373
Fix print format in core/dp/txrx3.0/dp_fisa_rx.c
Both cds_ieee80211_common_i.h and net/ieee80211_radiotap.h define
IEEE80211_CHAN_*, so only one header is needed in wlan_hdd_tx_rx.c
Change-Id: Ie9c3a7ea04e9b71acf96f007515a7ae6c0def938
CRs-Fixed: 2644359
Issue happens as below scenaio:
1 suspend happens, but dp_rx_thread didn't finish in time,
so timeout happens for suspend_event, here suspend will
return success to kernel.
2 resume happens before dp_rx_thread to reset resume_event,
and resume finished.
3 if dp_rx_thread finished and blocking with resume_event,
and in following test, suspend didn't come(longer then
hang detect time).
4 hang detect will alarm.
Fix is to return failure if dp_rx_thread can't be suspend
in time. Suspend can triger again later.
Change-Id: Ifbfdef5bb1c8d6e00b8fa5cc5e6dc74d3495c9ea
CRs-Fixed: 2626468
Fisa flow in FT still exists even after vdev teardown. Same vdev
type is reinitialized with different vdev pointer.
So take care to update the fisa_flow vdev with current vdev.
Change-Id: Ib52c6d1ea5354532a42fd0065db740c96d78ebc6
CRs-Fixed: 2621691
Consider case where vdev is valid but deliver function
callback is deregistered. Check for null delivery function.
Change-Id: If17f1d680a10c2009a910172a66cd8dcf7cdffbd
CRs-Fixed: 2613162
Return control after dropping NULL vdev msdus and make sure to
NULL terminate the fisa_flow->head_skb.
Change-Id: I50e469f603b48cb578db30aaaaa9f974d469fde1
CRs-Fixed: 2613251
Validate vdev before delivering the packets for vdev.
Drop the packets if vdev is deleted.
Change-Id: If92d0fba04d96e3830bb4e6f04c395b4fcd54f84
CRs-Fixed: 2606760
Aggregate the UDP flow msdu in to jumbo msdu and deliver to stack.
Stack handling of jumbo msdu saves the CPU mips.
Change-Id: I5a5d3fdbf3037d3b538f737bf4de8edc06260ab1
CRs-Fixed: 2600268
Check the HW TLVs to identify if the flow is already programmed.
If flow doesnot exist make an entry to SW and HW flow table.
Invalidate FSE cache to make fse read updated FT entry
Change-Id: I6acc539c5c7994e438ebb2af9cb3bb5ecbf6e120
CRs-Fixed: 2600268
In dp_rx_tm_suspend, suspend_event should be reset before waiting
for it. otherwise, the suspend function will be break.
Change-Id: I9132f45b02386c54fb8e27f0f7c2c71205450c9d
CRs-Fixed: 2606227
Today we enqueue nbuf list to rx_thread via nbuf frags_list.
If deliver_head happens to have frags_list then it is delivered alone.
Remaining list of skbs are delivered using frags_list of next skb.
It does not takecare to update QDF_NBUF_CB_RX_NUM_ELEMENTS_IN_LIST of
the new head_skb with remaining num skbs, make sure to update it.
Also add nbuf_queued to take care of this accounting.
Change-Id: I5557b5c56576c46fc8564a87a27d167b8785bb95
CRs-Fixed: 2559875
There might be race condition when doing RX GRO flush between dp_rx_thread
and vdev detach thread.
Only doing RX GRO flush in the dp_rx_thread context, and use the events to
sync with dp_rx_thread and vdev detach thread.
Change-Id: I2dbf92c2c11e950ca790dd7429c8bb235c239d0c
CRs-Fixed: 2601826
If there are still RX packets pending in the napi gro_hash list, do RX GRO
flush after flushing the RX thread pending packets when detach the vdev to
avoid net_device might be invalid later which has been stored already in
the pending skb.
Change-Id: Iff0a5cf49c87b91b8cae3dbcb541d1cf0bc480a6
CRs-Fixed: 2598149
Currently cdp ops are given pdev/vdev/peer
handle as its arguments which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev_id or vdev_id or peer mac address,
which will be used to get the respective handles,
and hence avoiding the unwanted access of the
handles if it has been deleted.
- txrx_data_tx_cb_set
- txrx_mgmt_tx_cb_set
- txrx_mgmt_send_ext
- txrx_pdev_attach_target
- txrx_pdev_detach
- txrx_vdev_attach
- txrx_vdev_register
- txrx_vdev_detach
- txrx_peer_create
- txrx_peer_delete
- txrx_peer_delete_sync
- txrx_fw_stats_get
- txrx_get_vdev_from_vdev_id
- txrx_pdev_set_ctrl_pdev
- txrx_pdev_attach
- txrx_get_vdev_mac_addr
- txrx_pdev_post_attach
- txrx_pdev_pre_detach
- txrx_get_ctrl_pdev_from_vdev
- txrx_get_mon_vdev_from_pdev
Change-Id: Ib8b0b1edd63e7c3f8813b11ca26b50ec121fe255
CRs-Fixed: 2541459
When a particular vdev is deleted, the corresponding rx
packets which have been queued to the rx thread are not
flushed. Hence when such packets are submitted to the
network stack, the dev for this skb will be invalid,
since we have already freed the adapter.
Flush out the packets in the rx thread queues, before
deleting the vdev.
CRs-Fixed: 2552140
Change-Id: Ia49af2c203c64077f7fd87524bb4caa4060e0044
As a part of cdp convergence the pdev_id
is used to obtain the pdev handle on need
basis.
Instead of the pdev handle, use the pdev_id to
retrieve datapath pdev handle.
CRs-Fixed: 2539733
Change-Id: I887ea2f1a312207cbb642b33435f4e7111068c62
During SSR, DP RX threads need to be resumed so that they can be later
shutdown by posting RX_SHUTDOWN_EVENT to the threads. DP Threads
shutdown procedure waits on a completion event, which is completed by
the threads. In case the threads are not up, the caller may
be stuck waiting for DP threads to shutdown.
Check state before DP RX thread suspend/resume to avoid repetitive
suspend/resume requests.
Change-Id: Idb689e0dae7cf487e0bea45ef2dade369ae2f9f6
CRs-Fixed: 2529673
Local peer_id is being cleaned up across DP, HDD and PS/WMA.
So, any references to local peer_id/sta_id will be replaced
by peer mac address and all interactions between the layers
will be based on peer mac address.
This change invloves removal of local_peer_id usage from
DP API dp_rx_thread_process_nbufq.
Change-Id: Ibfed421df3ace139808d16365ec5d54e9b013dfe
CRs-Fixed: 2512693
Currently DP RX threads are using the same wait_q for all operations.
The problem with this is that when there is traffic for only one
threads, we end up waking up other threads as well moementarily.
This wastes power and is in-efficient.
Use different wait queues for different threads.
CRs-Fixed: 2495719
Change-Id: I689659b7aa0ab93b7e2f009d2dc7fe741b66ee78
Affine DP RX Threads to perf cluster in high throughput scenarios.
High throughput is detected using existing logic from the bandwidth
timer.
Change-Id: Ieb98c6930807ba42be7f5b4d0b8a78dfb197ba27
CRs-Fixed: 2474322
On association completion, RX handles are registered with the DP layer
as a part of cdp_vdev_register. It is possible that immediately after
association, host receives RX packets, but RX handles have not been
registered for the vdev with DP layer.
Drop packets in DP RX Thread if OS RX handles are not found for the
vdev.
Change-Id: I3bbd489ec9c5e6f6267521818663b123a85bb3f9
CRs-Fixed: 2419376
A common pattern in WLAN to panic the driver is to log the reason and
then unconditionally panic. QDF_DEBUG_PANIC() takes a reason string to
help make the reason for the panic more obvious, but it is not always
used. Ensure all callers of QDF_DEBUG_PANIC() provide a reason string.
Change-Id: I3d23a8980adaeaa1a9798a4a6b0fba1f36eb52ad
CRs-Fixed: 2403829
Add DP RX Thread Stats support. Stats can be retrieved using iwpriv
dumpStats command.
Remove print from hdd_gro_rx_dp_thread function. This condition is
expected when gro is disabled on low throughput. Print is not needed.
CRs-Fixed: 2346997
Change-Id: I3619844b66e845184a4b8c77763bf9f2d2ea0a38
DP RX thread is using an un-initialized lock during suspend/resume
routine. This lock is not needed as the code is executed only by a
single execution context.
Remove usage of un-initialized lock.
CRs-Fixed: 2351010
Change-Id: I656562fe3ca73a5044163008a44ffae416a6a7fa
1. Remove error prints for qdf_mem_malloc APIs.
2. Remove unnecessary __func__ from data path prints.
Change-Id: I6c4b110f626d84da055821c5f210a3d000b6ff15
CRs-Fixed: 2317315
error: '__DP_RX_THREAD__H' is used as a header guard here,
followed by #define of a different macro [-Werror,
-Wheader-guard]
Change-Id: I21beca14c8ea98a9a6c4a4acd5f3c7428fd56e01
CRs-Fixed: 2315965
Currently in function dp_rx_thread_process_nbufq inside while
loop with nbuf list as condition if peer or vdev is not found
nbuf list is freed but not assigned to NULL and continue operation
is done. This leads to invalid freed nbuf list access in successive
loop iteration. In this change after nbuf list is freed assign it
to the next nbuf list which is in the rx thread queue.
Change-Id: I4b595a8708f91677645815105ad736926de91758
CRs-Fixed: 2309908
Check for nbufs which might already have an existing ext list
before appending to it.
Change-Id: Iac24eaf8430d7f9280386f1449c567fce8aa52fb
CRs-Fixed: 2304742
In one of the tests, when the driver switches to FTM mode, DP RX threads
are not initialized as the necessary configuration is not passed down
from CDS. However, cds_dp_close tries to de-initialize the threads and a
spinlock un-initialized error is seen.
Donot de-initialize the DP RX thread module if it is not initialized.
Change-Id: I14a1dcb678c9d953abd3262e86408d12f4eb2617
CRs-Fixed: 2301398
Add support for DP RX Threads as a part of the FR. Multiple RX threads
can be enabled from the ini. The code is added in a new DP module
outside of the cmn project.
Change-Id: Ief6ee955f13c5e527986307371b8e45677cb9700
CRs-Fixed: 2256446