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
This commit is contained in:
Kai Liu
2016-10-24 16:25:46 +08:00
committed by qcabuildsw
parent 3e5d6aae27
commit 0c2b5e57a0

View File

@@ -39,12 +39,19 @@
#include <cdp_txrx_cmn.h> /* ol_txrx_pdev_handle */
#include <ol_defines.h>
#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