Currently, we break the dp_rx_process() reap loop when we encounter
a ring descriptor with invalid bit set in SW cookie. If the HW
has copied old/stale entries in the ring, then we will end up
processing the same entry every time we try to reap the ring.
Instead, assert on processing such invalid entries so that
we can obtain useful debug information.
CRs-Fixed: 2904509
Change-Id: Iddde959a573ddf4ca364e1fb7a54ed0eaf4dc169
Same cookie was provided in REO srng and REO exception
ring. As a result, NULL pointer dereference occurred in
dp_rx_reo_err_entry_process.
To fix this, adding nbuf paddr sanity check in
function dp_rx_reo_err_entry_process.
CRs-Fixed: 2892345
Change-Id: Ie359921d8a270a3428b8286792941e84b0c68425
Refill pool buffer IPA mapping is done during allocation time,
but in some cases where IPA pipes enable/disable happens in between
previous mapping is not valid which is causing SMMU fault from IPA module.
Fix this by moving IPA mapping before replenishing buffers to RXDMA ring.
Change-Id: Ie6c5eb791b6f832f311a6e89489aebef37094d8f
CRS-Fixed: 2901819
Rx desc alloc failures foes not really reflect rx packet errors.
So rx desc alloc failures shall not be counted as packet errors
Change-Id: I85ed478bbb3af24ff680a338aca86d3b4548ad8d
Adding lock for dp_txrx_ppdu_stats_handler given
that insertion and deletion happen in different cores.
Change-Id: Ic0102d615f02cbfed70acc1114a314426466638e
The bridge forwards the multicast packets to all the
interfaces attached the bridge.
When the STA network interface receives such packets
from bridge and send it to the AP, it is echoed back
from the BSS.
These packets are not intended for the bridge as it
will lead to looping.
Add a check to detect and drop such packets when
received back from the BSS.
Refactor dp_rx_mcast_echo_check function to fix
compilation errors from the above change.
CRs-Fixed: 2894272
Change-Id: I3f9e92c3598af11d3ff4e6b9b8afbc4110a926fc
Rx refill lock is not in sync during deinit path causing
mem leak of refill buffers. Set the Rx refill lock during deinit path.
Change-Id: Ic7d07c0fcaae26f6a269afcba4d593be1d5eacad
CRs-Fixed: 2898006
Change-Id: I483b74ee86ef648b9e75251097c33a18f9e0f884
* /local/mnt/workspace/dharilak/git_history/src/qca-wifi-oss: (1722 commits)
Move files dp_txrx_wds.c/.h with history from qca-wifi-oss to CMN project
qca-wifi: Filter to add AP channel report based on opclass
qca-wifi: Handle memory leak and LOCK in dfs_precac
qca-wifi: Add a dispatcher for reg_is_chan_disabled
qca-wifi: TxCapture: Protect access to defer_msdu_q
qca-wifi: Do not add 80MHz non DFS channels in precaclist
qca-wifi: add fix for last set bit to update ba size
qca-wifi: Move dfs_set_nol back to common code
qca-wifi: fix on ppdu_info mem error
qca-wifi: Add definitons for resource profile APIs
qca-wifi: Command to configure max auth failure packets
qca-wifi: Add lock for EXTAP table
qca-wifi: Remove IEEE80211_PARAM_EXT_IFACEUP_ACS
qca-wifi: Add command to configure scheduler watchdog timeout
qca-wifi: filter out frames with tlv miss
qca-wifi: Add new WDI event index for tx capture
qca-wifi-oss : Start RCAC on 80MHz for 160MHz current operating width
qca-wifi: update sequence number only on valid
qca-wifi: fix update bitmap for end of window
qca-wifi: TxCapture: Fix OOB access of tid array
...
Any update to the SRNG TP/HP when the device is in low power
state would result in system errors. It is recommended to disable
EXT grp irqs and drain TXRX before sending power save enter command
to the FW. This will ensure that no interrupts are received while
in power save mode and as a result there wont be any HP/TP updates.
Change-Id: Ibf952bbc2c6d13fb3e4ca6b4845bc9cc887fa694
CRs-Fixed: 2883135
Add wbm head/tail pointer stats to dp_txrx_stats and ring
usage percentage for all SRC and DST rings.
Stats added to the following cmd: iwpriv wlan0 txrx_stats 26 0
CRs-Fixed: 2865996
Change-Id: I7d144d87c5f3485ec9ba85f50b036b69a64e53c6
For the minidump feature, the wlan_minidump_remove function
definition is modified. So, update the function parameters
accordingly at all instances of the wlan_minidump_remove function.
Change-Id: I5a346f6cdf423ece02fb08d68e4422251af54876
CRs-Fixed: 2860435
Check if Rx single msdu length including padding and tlvs length
is greater than Rx buffer size allocated to H.W and raise error
to catch out of bound access.
Change-Id: I7c70b8a0b6828f7fd88a19141f9087430085c13a
CRs-Fixed: 2873933
In existing approach, monitor rings get initalized
on monitor vap init time,
For linux 5.4 kernel, physical contiguous memory(512Kb) is not
available on vap init time.
Initialize monitor related rings on monitor vap creation time
to get required memory.
Change-Id: I288c27cfcf77b3d224c2f21bbe8ac65670f32dda
CRs-Fixed: 2865141
There is possiblity of receiving fragmented packets just before
tid setup is done, so rate limit the tid not setup error log
to avoid excessive cosole logging.
Change-Id: I372d3904650fcbf2ad11313da1087da52a0d3dc6
CRs-Fixed: 2884897
1. Address missing spinlock protection while trying to append
"msdu_comp_q" to "defer_msdu_q".
2. "qdf_nbuf_queue_append" attempts to access "two" lists -
reads "msdu_comp_q" and modifies "defer_msdu_q", hence it is
essential to acquire locks meant for both the lists.
- Acquire "tid_lock" for "defer_msdu_q"
- Acquire "tasklet_tid_lock" for "msdu_comp_q"
Change-Id: Ib84ff4dc4ec3efa08181bba5068e422450026943
As a software WAR for hardware issue where we are
getting wrong cookie value for a buffer which is already
mapped to another rx_desc with different cookie id and
is already has in_use bit set, we will skip the
processing for the current rx_desc when in_use bit
is not set.
Change-Id: I9f469bf1f4b03e0fb9a6694d9445a0c690224ccb
Avoid per packet Rx refill buff pool lock, instead
acquire/release lock for burst of nbuf's replenishment.
Change-Id: I778cb9702d31d4b8911cca4e7f06f12c50ef6df9
CRs-Fixed: 2884208
During interrupt mask initialization bitmap of rxdma2host
destination ring mask is filled in host mode.
To avoid spurious interrupts reset this interrupt mask
when NSS offload is enabled.
Change-Id: I513a78639898c6f2bd9ea5418def03d64d7232d0
using if statement to filter out the frames that might not need to be
counted for stats purposes. this include frames that come in with a
missing tlv.
Change-Id: I828f27cda89934591c4daed9f80dc0794a82833d
Use tsft timer time stamp in HTT STATS IND header for
management TLV of CBF record since pktlog parser use
tsf time stamp in the ptklog record as packet receive
and transmit time.
Change-Id: I9643df11c0f9aa158f7b94e4b2083531044bcf66
In client roaming scenarios, when the ast entry is
updated, make sure the ast entry is updated with
new vdev id.
Change-Id: I0bd5235eeb28909cabe48f577d4477789d7be9e8
sequence number populated from tlv are incorrect for some frames.
Firmware populate correct sequence number for management and control
frame either in payload or tlv itself.
added field to get valid sequence number.
Change-Id: I21b1c34c0d66cb46c3a0baaaa231c952de065534
added new WDI event index for tx capture, share same index cause
corruption when switching different feature without delay.
Change-Id: I392ddbf61ed6384a84e5d7f2ffd06701a68a24b7
Refactor WLAN_FEATURE_PKT_CAPTURE_LITHIUM to WLAN_FEATURE_PKT_CAPTURE_V2
to remove hardware name from compilation flag.
Change-Id: I5a30b33d8bd6065d12e7c89c666c2f0cab66344e
CRs-Fixed: 2869827
Fix issue on enabling packet log.
Fix issue on logging CBF pkt in AP/STA mode.
Fix issue on setting data length 4 bytes aligned in pktlog header
, htt stats indication message header and Rx management TLV header.
Add CBF support for pktlog WMI enable command for firmware to enable
CBF receive.
Change-Id: Ib0067f32d7414be96503c4c67846c1312a59586e
sequence number populated from tlv are incorrect for some frames.
Firmware populate correct sequence number for management and control
frame either in payload or tlv itself.
update the sequence number field only if it is valid.
Change-Id: I66681ebd2bda326a7c05e8af5635d02bc4ae818a