Browse Source

qcacmn: Unlock the tso segment descriptor pool

Unlock the tso segment and tso common segment descriptor
pool if there are no descriptors available in the freelist.

Change-Id: I5c09e381769cdaa914e03ced24dccae8aea90897
CRs-Fixed: 2042950
Venkata Sharath Chandra Manchala 7 years ago
parent
commit
99868ac3ca
1 changed files with 2 additions and 0 deletions
  1. 2 0
      dp/wifi3.0/dp_tx_desc.c

+ 2 - 0
dp/wifi3.0/dp_tx_desc.c

@@ -358,6 +358,7 @@ void dp_tx_tso_desc_pool_free(struct dp_soc *soc, uint8_t pool_id)
 	c_element = soc->tx_tso_desc[pool_id].freelist;
 
 	if (!c_element) {
+		TX_DESC_LOCK_UNLOCK(&soc->tx_tso_desc[pool_id].lock);
 		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
 			FL("Desc Pool Corrupt %d"), pool_id);
 			return;
@@ -455,6 +456,7 @@ void dp_tx_tso_num_seg_pool_free(struct dp_soc *soc, uint8_t pool_id)
 	c_element = soc->tx_tso_num_seg[pool_id].freelist;
 
 	if (!c_element) {
+		TX_DESC_LOCK_UNLOCK(&soc->tx_tso_desc[pool_id].lock);
 		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
 			FL("Desc Pool Corrupt %d"), pool_id);
 			return;