summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Liu <kaliu@codeaurora.org>2016-10-24 16:25:46 +0800
committerqcabuildsw <qcabuildsw@localhost>2016-11-29 16:07:11 -0800
commita1a1dbf0ce7b1844c44f1273840610d73c4e601f (patch)
treeb8763c3d0d45c01f32cd1e1e32b23afbdad2df30
parent2a1a4491772e6978cbe6929968112fbd265528f1 (diff)
qcacld-3.0: Store tx desc id in sk_buff instead of skb head
qcacld-2.0 to qcacld-3.0 propagation In MDM ap+ap case, sometimes kernel issues two skb but has same mem address of skb head and driver tx desc id is stored in skb head, so the first id will be overwrote by the second one. Will hit crash when handle the tx_desc. The solution is storing tx desc id in sk_buff to avoid the case that two skb has same tx desc id. Change-Id: I2186a06ad3ec929683292c4c052904a18427cc64 CRs-Fixed: 951208
-rw-r--r--core/dp/ol/inc/ol_txrx_htt_api.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/core/dp/ol/inc/ol_txrx_htt_api.h b/core/dp/ol/inc/ol_txrx_htt_api.h
index 863a0acfcafb..f589521aed1d 100644
--- a/core/dp/ol/inc/ol_txrx_htt_api.h
+++ b/core/dp/ol/inc/ol_txrx_htt_api.h
@@ -38,12 +38,19 @@
#include <cdp_txrx_cmn.h> /* ol_txrx_pdev_handle */
+#ifdef CONFIG_HL_SUPPORT
+static inline uint16_t *ol_tx_msdu_id_storage(qdf_nbuf_t msdu)
+{
+ return QDF_NBUF_CB_TX_DESC_ID(msdu);
+
+}
+#else
static inline uint16_t *ol_tx_msdu_id_storage(qdf_nbuf_t msdu)
{
qdf_assert(qdf_nbuf_headroom(msdu) >= (sizeof(uint16_t) * 2 - 1));
return (uint16_t *) (((qdf_size_t) (qdf_nbuf_head(msdu) + 1)) & ~0x1);
}
-
+#endif
/**
* @brief Tx MSDU download completion for a LL system
* @details