Просмотр исходного кода

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
Kai Liu 8 лет назад
Родитель
Сommit
0c2b5e57a0
1 измененных файлов с 8 добавлено и 1 удалено
  1. 8 1
      core/dp/ol/inc/ol_txrx_htt_api.h

+ 8 - 1
core/dp/ol/inc/ol_txrx_htt_api.h

@@ -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