From fcb34c7f2c4b62a8ca95364ddab3dfd5a5cae4e8 Mon Sep 17 00:00:00 2001 From: Om Prakash Tripathi Date: Mon, 20 Nov 2017 14:21:44 +0530 Subject: [PATCH] qcacmn: Fix different lock being released than taken 1. Fix a case in dp where lock is taken on tso segment but released on tso desc. 2. Increment dma alloc size if allocation is successful Change-Id: I73d54026a1c268597105096925d138008c2d8c1e CRs-Fixed: 2131278 --- dp/wifi3.0/dp_tx_desc.c | 2 +- qdf/linux/src/qdf_mem.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dp/wifi3.0/dp_tx_desc.c b/dp/wifi3.0/dp_tx_desc.c index 1d7326df86..9fb857e7e4 100644 --- a/dp/wifi3.0/dp_tx_desc.c +++ b/dp/wifi3.0/dp_tx_desc.c @@ -461,7 +461,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); + TX_DESC_LOCK_UNLOCK(&soc->tx_tso_num_seg[pool_id].lock); QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR, FL("Desc Pool Corrupt %d"), pool_id); return; diff --git a/qdf/linux/src/qdf_mem.c b/qdf/linux/src/qdf_mem.c index 42a60aead3..e31747383b 100644 --- a/qdf/linux/src/qdf_mem.c +++ b/qdf/linux/src/qdf_mem.c @@ -1616,7 +1616,9 @@ void *qdf_mem_alloc_consistent(qdf_device_t osdev, void *dev, qdf_size_t size, if (alloc_mem == NULL) qdf_print("%s Warning: unable to alloc consistent memory of size %zu!\n", __func__, size); - qdf_mem_dma_inc(size); + else + qdf_mem_dma_inc(size); + return alloc_mem; }