Currently the dp_link address is provided to CDP vdev
as a part of vdev register. Also, as per the vdev deletion
sequence, it is possible that dp_link can be destroyed
before CDP vdev is detached. This can lead to use-after-free
scenario when CDP vdev uses the osif_vdev handle (which is
the dp_link handle).
In order to fix this, do not free the dp_link till the CDP
vdev has been detached.
Change-Id: Ie5a1140a0d256b6115fa62e30e6bfd61d1dfc898
CRs-Fixed: 3696641
Peer state could be queried from both fast path and
slow path. Change separates this call and allows log
print from slow path call.
Change-Id: I888b67224752182b792e0165bd5cbacbb7e5f293
CRs-Fixed: 3691146
While selecting RX refill ring size soc is being
accessed without null check performed.
Add null check to avoid any invalid access.
Change-Id: If1111341b53903c4d00bb96da67af2f6b3cd2746
CRs-Fixed: 3642908
Currently RX nbuf data pointer is reset considering
headroom reserve size of NET_SKB_PAD. So while reattaching
buffer back to H.W always data pointer is reset back to head plus
NET_SKB_PAD offset. But if skb is not allocated with head room
reserve then we should not reset data pointer taking NET_SKB_PAD
as consideration.
Fix this by pushing nbuf data pointer back to the state when
nbuf entered the host.
Change-Id: I1c3838a54f87f747e3695e86e54e0e663ba4f182
CRs-Fixed: 3582877
Current mechanism of maintaining nbuf user count to handle
TSO segments during transmission is not proper and causing
double free in corner cases.
Fix this logic by incrementing users count before HW send
and revert the users count if H.W send fails.
Change-Id: I47bd5d3b214705dc7ba12f5e482ee80447831bfe
CRs-Fixed: 3516215
Currently connectivity logging is done for all opmode
but logging should be done only for STA mode.
So to fix the issue add check for opmode and skip
connectivity logging if opmode is not STA
Change-Id: Iae225faa0fb7f141a46979c90ac4c2374f8a8832
CRs-Fixed: 3515363
-Wimplicit-fallthrough is being enabled by default. Some compilers
such as clang require the attribute instead of just a fallthrough comment.
modify the DMA direction parameter from
PCI_DMA_FROMDEVICE to DMA_FROM_DEVICE.
Added missing break statement.
Change-Id: I1a226b1c2ce92c7290a094b33a81968d27ff74b3
CRs-Fixed: 3505237
Logging macros already takes care of adding function name.
Hence, delete the occurrence of __func__.
Change-Id: Iee88f5b9620a70a3707c254866201447c10dcbbd
CRs-Fixed: 3492707
WLAN driver working on AP0+AP1 mode. After a ref STA move
connection from AP0(vdev0) to AP1(vdev1). vdev0 have release
peer STA. But it can get a peer state from ol_txrx_get_peer_state.
Actually, the state is from vdev1, not vdev0. If vdev0 have data
send to FW, it will cause FW crash.
Change-Id: I7978b758e98a16993d16d53a55d67734aa896979
CRs-Fixed: 3477987
Currently ol rx thread code is under QCA_CONFIG_SMP macro, which is
enabled for all the targets. But LI, BE and RH family targets don't
use this ol rx thread implementation. Hence, compile out ol rx thread
code for LI, BE and RH targets.
Change-Id: I1a1dfd09f5364ddb519c846e6c456d10f81e369c
CRs-Fixed: 3468499
As now throttle level is extended to THROTTLE_LEVEL_5,
previous array 'dutycycle_level' of size 4 may use index
value 4..5 during initialization. Change the array size to
THROTTLE_LEVEL_MAX to avoid out of bound accessing.
Change-Id: I5f9f8cb15e6fbdd8e5b4deccddca954fc73cd8e3
CRs-Fixed: 3433333
The tx_mgmt_desc_ctxt member of struct htt_pdev_t has been unused
since the initial snapshot of the driver, so remove it along with the
unused underlying data structures.
Change-Id: Iebd73c0c9eb8f882ec6a0d01ad2979edb701cb80
CRs-Fixed: 3428241
The original snapshot of the driver included the macro
ol_ctrl_addba_req(). However, this macro has never been used and,
since it references an unknown identifier ol_addba_req_reject, it
could never be used, so remove it.
Change-Id: Ib934617376ba241fc7502cfef49bc895e8cc4102
CRs-Fixed: 3428342
Prototypes ol_rx_fwd_mcast_check_ap() and ol_rx_fwd_mcast_check_sta()
were part of the initial driver snapshot, but there was never an
actual implementation of these functions, so remove the prototypes.
The prototype for ol_rx_fwd_check() uses a legacy documentation
template, and the prototype for ol_get_intra_bss_fwd_pkts_count() has
no documentation, so make sure both of these have proper kernel-doc
documentation.
Change-Id: I80a9c6f61631dd509b9029312b1e35c235ac2aa9
CRs-Fixed: 3428364
For QCA_LL_LEGACY_TX_FLOW_CONTROL data flow control,
currently it cannot support TX off for thermal mgmt.
Similar to thermal implementation in FW, refine
ol_tx_set_throttle_phase_time() to support thermal
mitigation TX off processing when INI throttle duty
cycle set to maximum 100.
Change-Id: I208288bda2ad7ca1a14be0b80a0d57361ce0ec8c
CRs-Fixed: 3413545
The header file pktlog.h is a legacy remnant that doesn't provide any
value, so remove the unnecessary #include. This is a precursor to
removing the actual file.
Change-Id: Ic9def32b2c800a9b05001eb3816d1b421f82288e
CRs-Fixed: 3420816
Few of the CE descriptor related macros are moved from qdf to
ce_internal.h file. Hence rename the corresponding macros.
Change-Id: I64b74456fb3f349ab65b3c955461ef3693ca318d
CRs-Fixed: 3388380
Configure RX refill ring size based supported nss mode.
In 1x1 mode throughput supported will be less,
it does not require higher RX refill ring size so
in 1x1 mode use reduced refill ring configuration.
Change-Id: Iab1db3e99b1a30cf1dd3d584192363cbffa84ec1
CRs-Fixed: 3376948
Two different crashes are observed due to rtpm get/put count
mismatch for HIF_RTPM_ID_HTT dbgid.
1. During idle timeout shutdown: Missing rtpm related htc packet
tags for htt_h2t_ver_req_msg(), htt_h2t_frag_desc_bank_cfg_msg()
and htt_h2t_rx_ring_rfs_cfg_msg_ll() messages cause system crash.
2. During wlan connect: In ol_tx_completion_handler(), rtpm put is
called without rtpm get.
Fix given:
1. Add relevant HTC_TX_PACKET_TAG_RUNTIME_PUT and
HTC_TX_PACKET_TAG_RTPM_PUT_RC in the above functions to invoke
missing rtpm put calls and call htc_dec_return_htt_runtime_cnt()
to avoid calling rtpm put without rtpm get in htc_cleanup().
2. Remove extra htc_pm_runtime_put() from ol_tx_completion_handler().
Change-Id: Ia9163464af0fc0700046578633e9587c009841f5
CRs-Fixed: 3357909
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