summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGanesh Babu Kumaravel <kganesh@qti.qualcomm.com>2014-11-05 16:32:34 +0530
committerAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2014-11-07 17:44:11 +0530
commita5b5b3ebb9c47bb81061813cb8340809ce8ff7dd (patch)
treeba519ec1e4f137b7e9e201831d621e1017369023
parentd96de5db012f6a304ff688ac6676b89ba07dab13 (diff)
qcacld:SDIO Fix for Data Stall issue
There is race where HTCSendDataPkt() thinks the tx queue is in access by referring TxProcessCount so it puts the data in tx queue and returns. But HTCTrySend() which gets called from HTCTxCompletionHandler() serviced the queue but not yet cleared the TxProcessCount. But unlocks the traget htc lock. This race results in a case where the tx packet is not processed at all and txrx scheduler is waiting for this credit to download other packets. So fix it by unlocking the htc lock after clearing TxProcessCount. CRs-Fixed: 751626 Change-Id: If00d9e8c4757313671c58aee3d9869553424fdd6
-rw-r--r--CORE/SERVICES/HTC/htc_send.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/CORE/SERVICES/HTC/htc_send.c b/CORE/SERVICES/HTC/htc_send.c
index aa22965383f7..72056ade7667 100644
--- a/CORE/SERVICES/HTC/htc_send.c
+++ b/CORE/SERVICES/HTC/htc_send.c
@@ -894,9 +894,9 @@ static HTC_SEND_QUEUE_RESULT HTCTrySend(HTC_TARGET *target,
}
- UNLOCK_HTC_TX(target);
/* done with this endpoint, we can clear the count */
adf_os_atomic_init(&pEndpoint->TxProcessCount);
+ UNLOCK_HTC_TX(target);
AR_DEBUG_PRINTF(ATH_DEBUG_SEND,("-HTCTrySend: \n"));