summaryrefslogtreecommitdiff
path: root/core/utils
diff options
context:
space:
mode:
authorjiad <jiad@codeaurora.org>2017-05-18 11:28:57 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-05-30 00:56:55 -0700
commitb81ef70d636299f06b4936533796a6987beea950 (patch)
tree8079d56ac4f0d62b202a9d53033cb72d30277cc1 /core/utils
parentd849ef56e0db7c93e54a3a8eaf9bb9700ba1415f (diff)
qcacld-3.0: enable pktlog support for HL project
qcacld-2.0 to qcacld-3.0 propagation Currently for SDIO implementation, tx comp indication is suppressed and tx_desc is freed when htt download is done. This leads to invalid tx_desc being referenced when pktlog indication handler wants to collect TX-ed tx_desc information. Fix consists of two parts: 1. When pktlog is enabled in ini, enable tx comp indication handler just like PCIe and USB. tx_desc is still valid when pktlog indication comes. 2. Check vdev pointer embedded in tx_desc structure. vdev pointer is set when tx_desc is allocated and set to NULL when tx_desc is freed. This guards against invalid tx_desc_id from firmware. Note that performance drops should be expected when pktlog is enabled on HL platforms. Change-Id: Iba9b8323b4a6e2ae17e36768bda3511f52236a2c CRs-Fixed: 2034996
Diffstat (limited to 'core/utils')
-rw-r--r--core/utils/pktlog/pktlog_internal.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/core/utils/pktlog/pktlog_internal.c b/core/utils/pktlog/pktlog_internal.c
index 3299102963bb..8a2b133a1afc 100644
--- a/core/utils/pktlog/pktlog_internal.c
+++ b/core/utils/pktlog/pktlog_internal.c
@@ -290,8 +290,13 @@ fill_ieee80211_hdr_data(struct ol_txrx_pdev_t *txrx_pdev,
>> TX_DESC_ID_HIGH_SHIFT);
msdu_id += 1;
}
- tx_desc = ol_tx_desc_find(txrx_pdev, tx_desc_id);
- qdf_assert(tx_desc);
+ tx_desc = ol_tx_desc_find_check(txrx_pdev, tx_desc_id);
+ if (!tx_desc) {
+ qdf_print("%s: ignore invalid desc_id(%u)\n", __func__,
+ tx_desc_id);
+ return;
+ }
+
netbuf = tx_desc->netbuf;
htt_tx_desc = (uint32_t *) tx_desc->htt_tx_desc;
qdf_assert(htt_tx_desc);