Since Linux Kernel commit 63706172f332 ("kthreads: rework
kthread_stop()"), made in 2009 in Linux Kernel v2.6.31-rc1, it has not
been necessary for kernel threads to call do_exit(). Since we do not
support kernels earlier than that, remove the calls to
qdf_exit_thread(), the abstraction function for do_exit().
See Change-Id I22f27692fa8766df080630b9b0640c259285557c for more
information on why this call is being removed.
Change-Id: I5fa0e404e782edc04034bef8412acd0ca2f83097
CRs-Fixed: 3300457
Update the prealloc size for RXDMA_BUF and REO_DST
rings using the ini values which have been configured.
Change-Id: Idc53bf8626017dd234767da65e131557f3a5600d
CRs-Fixed: 3283991
Currently the history recording for any debug purpose
is done using a contiguous memory chunk. For certain
history like tx_hw_ring, tx desc or tx completion desc
history, the amount of contiguous memory required is
very huge (order 7 or 8 allocation), which have a
higher probability of failing.
In order to mitigate the above scenario, introduce the
support for recording debug history into fragmented
chunks of memory, thereby reducing the requirement of
contiguous memory.
Change-Id: Ia725cf5d061a53009f02bddd67967360404f2f1c
CRs-Fixed: 3283778
In DP thread create failure path, thread de-init logic
doesn't check thread is really running or not, but sends
an shutdown event and wait for completion. This will cause
completion timeout and lead crash. Change adds additional
check for theard stats before sending event.
Change-Id: Ie8e07ba3b6f992a34e9b4b3bbc36b8080157a408
CRs-Fixed: 3280401
When aggregation of a flow is in progress, there can be case
when the HW flow table entry match may fail for few packets.
Such packets, even though belong to a flow already present in
flow table, are routed independently to any RX ring.
When software checks this rx ring ID, from the independently routed
packet and compares the ring ID against the one which is assigned
for the flow, there will be a mismatch leading to unwanted behaviour.
Hence, always validate the fse_metadata before taking any
action on the basis of rx ring ID mismatch. The non-matching
packets, with invalid fse metadata can be submitted to network
stack independently.
Change-Id: Ia95f20ef1050bc981b2d22571b612fd2af6f6a65
CRs-Fixed: 3272353
Multiple instances of the misspelling "recevied" are present, so
replace them with the correct spelling "received."
Change-Id: Ie0421bc472d5c25f1fbcc5e8c9333e0283a6e129
CRs-Fixed: 3271103
Spinlock recursion is occured as dp_rx_fisa_add_ft_entry() is
returning without releasing the spinlock and from another CPU,
same process is trying to acquire the spinlock.
To fix this, if fisa is being bypassed, release spinlock before
returning.
Change-Id: I93a59a727683e1235b0ead96df5cd30f6c56d5a1
CRs-Fixed: 3257174
Handle build errors in legacy chipsets, to support
same link/mld peer mac address handling for MLO.
Change-Id: I8b4e323481c6d327ee579a6b8143215c94341b8e
CRs-Fixed: 3228926
We should use qdf_hrtimer_data_t, which is QDF abstraction of hr_timers.
We should use QDF_HRTIMER_NORESTART instead of __QDF_HRTIMER_NORESTART.
Change-Id: I02b83a23c94d1acde955313ed39e1b5cc44f76f2
CRs-Fixed: 3253137
Currently FISA flows are added for packets received
from DNS server. The connection to DNS server are short
exchanges to resolve any URL, hence there is no need
to create FISA flows for such short lived flows.
Bypass FISA for packets from DNS server.
Change-Id: Ifd4f15f2c0b131148ccff7fd450d536ac029788d
CRs-Fixed: 3249810
Currently the handler which dumps FISA stats, does not
check if the FISA feature has been enabled/disabled via
the INI. Accessing FST table when FISA has been disabled
via INI leads to unexpected assertion.
Fix this by checking if the FISA feature has been enabled
via INI, before accessing the FST table.
Change-Id: I5345138c5af03e3dd777bfe36004c477cff0ab7d
CRs-Fixed: 3249827
check memory size in dp_prealloc_get_context_memory, if memory size
needed > pre-allocated, then fall back to dynamic memory allocation.
Change-Id: I2727feef066046b54dff9206a1f6699ef4455fe8
CRs-Fixed: 3222594
All the DP specific code logic is moved out of HDD to
new DP component. So update HDD module to use newly
introduced DP component APIs for DP specific operations.
Changes were backed out because of association issue
introduced by MLO adapter to DP interface mapping issue
and to avoid any further regression.
Re-introduce changes after preforming complete sanity
to vet out any regression which might be introduced
by these changes.
Change-Id: I377aecc4343e75dd17d279a2eb84fc49e737e784
CRs-Fixed: 3198619
Currently in some cases we are returning
enum of type rx_pkt_fate instead of qdf_dp_tx_rx_status
Fix issue by returning correct enum type.
Change-Id: I97c67003178fd5347de57c1b78602177696e0973
CRs-Fixed: 3234233
Enable monitor status buffer tracking history.
Also enable the allocation of memory for the monitor
status buffer tracking history via prealloc.
Change-Id: Iafec8e68c85b3f2d9b0bf0523a19b7a32869e20a
CRs-Fixed: 3229689
-Wimplicit-fallthrough is being enabled by default. Some compilers
such as clang require the attribute instead of just a fallthrough comment.
Change-Id: Ie320d97a2df018fb0ad1a39c3fb2683e564d1808
CRs-Fixed: 3217418
Make changes in packet logging to send QDF status
and type instead of packet log type and status.
Change-Id: I8c1d04a78272159f7d34d6034c41d52e1e44b61d
CRs-Fixed: 3224876
With restructuring in hif runtime pm module, modules are
required to register with the hif runtime pm module. Also,
link states are depreciated.
This change registers PM QOS and bus suspend modules which
use runtime PM module and replace link state with resuming
link up state in PMO resume.
Change-Id: I0df48e3d31a1fb0f03faaa0617b48937c9bc224b
CRs-Fixed: 3169425
For KIWI platform FST reside in CMEM. CMEM address is known at the
init time from platform driver. Use 16K of CMEM address for FST.
Increase MAX FISA FST entry size to 256, which is allowed max size with
16K of CMEM allocation for FISA FST.
Change-Id: I395ab884b9cc761ed3c4438434475d6f9908a62b
CRs-Fixed: 3199251
All the DP specific code logic is moved out of HDD to
new DP component. So update HDD module to use newly
introduced DP component APIs for DP specific operations.
Change-Id: I02fd36c45ec247fbd4fe79e035c1176cba3ebcec
CRs-Fixed: 3172570
Currently if SWLM is disabled then SWLM based flush timer will
not be initialiazed, but during cleanup path timer deletion is called.
Fix is to check SWLM enablement before deleting flush timer.
Change-Id: I12a4c62bdda35854230de02248f55892dcf5caa2
CRs-Fixed: 3184918
As per current driver implementation, whenever we load the wlan
driver, we initialize the dp_prealloc structs with default values,
which are used by dp_prealloc_init to allocate memory and during
driver unload, in the function dp_prealloc_deinit, after freeing
the allocated memory, we mem_zero the dp_prealloc structures.
Unfortunately, this zeros both the static and dynamic content.
In case of soft driver unload/load, where we internally
de-init/init the wlan driver, dp_prealloc_init fails because
we now don't know size of memory to be allocated. That info
was part of the static memory that had been zeroed during
deinit.
To address this issue, only zero the dynamic fields of
dp_prealloc structs in dp_prealloc_deinit.
Change-Id: If450d426ee655f6c2b32febdd001ab6d5489b51e
CRs-Fixed: 3174685
Currently, data stall events are not detected individually.
Updated gEnableDataStallDetection ini provides control over
individual data stall events if bit 0 is not set.
Change-Id: Id4fd7f10f0806a39c5bdb7b8c097c26894dc5340
CRs-Fixed: 3159405
Currently SWLM is supported for single queue based traffic,
enhancing the SWLM to support multi queue based traffic.
Change-Id: If2d80e8122bbc972af0bba70e7a3f4c1da000c77
CRs-Fixed: 3161166
Currently during fisa flow aggregation REO ID check is done to
make sure all the flow packets are received in same REO and to avoid
out of order reception. But if RX packet matches CCE rules REO ID
is selected based on CCE rules since they have higher priority.
In this case ignore RX packet for FISA aggregation and do not panic.
Change-Id: I09b5c9fc4ecff7223d0034921e8923776ae4bf3b
CRs-Fixed: 3153104
If many packets are queued into rx thread, processing
the packets can delay the vdev del event processing.
To fix this, check for vdev_del_event when processing
packets and if vdev del event is set, do gro flush
and continue packet processing.
Change-Id: I589e53f55f11c7ad8d71c532c47ae2584e5db2a7
CRs-Fixed: 3152037
Remove CONFIG_WLAN_FEATURE_REDUCE_RX_THREADS compile flag.
Keep num rx_thread dependent on rx REO rings, 1 rx_thread for
each rx REO ring. It is controlled via INI dp_reo_rings_map.
Change-Id: I701e5cec79a8968b540c9437fe297ca1db8cd5d3
CRs-Fixed: 3048265
Currently refill thread is not getting chance to update
refill buffer pool, which is causing the increase in
rx thread time.
To fix issue move refill thread to performace cluster.
Change-Id: I839352ff09da692f801e97f7938a67ab8f09742b
CRs-Fixed: 3138081
Currently when reo id mismatch check is done there is
possiblity of flow getting evicted same time this may
lead to false alarm. To avoid this race condition reo id
mismatch check is done under lock protection.
Change-Id: I7d3ac25ec8c806677697242a0fd3fa338c0a6ad2
CRs-Fixed: 3129761
Currently we process and free the nbuf from
queue while holding a lock for the complete duration.
There might be a case when there are many packets pending
in the queue. This might cause the issue when we held the lock
and other process waits for lock.
So as part of the fix only perform the nbuf unlink inside the
lock and move the processing and free part outside the lock.
Change-Id: Iea0cabecc25ce90c189454b288421b1e720777f2
CRs-Fixed: 3125790
Currently dp peer is being added to inactive list during force
delete, but there is possiblity of peer getting freed up if
unmap ref count is not pending and leading to double free during
pdev cleanup.
To avoid this add the peer to inactive list only if unmap ref
count is pending.
Change-Id: Ib55a92dd36c4ec4a26d3103896ca31ff3d845148
CRs-Fixed: 3110728
Host send HTT_H2T_MSG_TYPE_WDI_IPA_CFG cmd to fw, need update
high 32bit addr for non-smmu platform which alloc physical
address more than 4G.
If alloc address is 0x1 5000 0000, it will cut off
bit32 ~ bit63, the value fw get is 0x5000 0000, the address
may be used by peripheral. When fw write addr 0x5000 0000,
assert will happen.
When this change compile on 32bit platform, it will error, for
right shift must less than system width.
Change-Id: If1e84cfdcd15494be3f7327986ff0e91ec7b2b3f
CRs-Fixed: 3097240
Currently, wlan host driver only report timestamp for TX successful
packets to upper layer.
This change add support to report timestamp for TX failed pkt to
upper layer.
Change-Id: Ib9b021675ebd388107f8bf1a61703f2b6cebb882
CRs-Fixed: 3077222
Host send HTT_H2T_MSG_TYPE_WDI_IPA_CFG cmd to fw, need update
high 32bit addr for non-smmu platform which alloc physics
address more than 4G, like addr 0x1 5000 0000.It will cut
off bit32~bit63, fw get memory is 0x5000 0000, it's maybe
use for peripheral memory.when fw write addr 0x5000 0000,
it will meet some error.
Change-Id: Ic5c5c00c85bdf08e61c9ff0f539989d2e96bb153
CRs-Fixed: 3077016
Currently if INI dp_rx_fst_in_cmem is not enabled and FW not report
the capability of FSE in CMEM, FISA dp_rx_sw_ft_lock will not be
initialized which lead to panic.
initialize FISA dp_rx_sw_ft_lock by default if FISA is supported
Change-Id: I515b151b9a02665f51c30263ef6c6c9929edb392
CRs-Fixed: 3082642