diff options
| author | Ganesh Babu Kumaravel <kganesh@qti.qualcomm.com> | 2014-11-05 16:32:34 +0530 |
|---|---|---|
| committer | AnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com> | 2014-11-07 17:44:11 +0530 |
| commit | a5b5b3ebb9c47bb81061813cb8340809ce8ff7dd (patch) | |
| tree | ba519ec1e4f137b7e9e201831d621e1017369023 | |
| parent | d96de5db012f6a304ff688ac6676b89ba07dab13 (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.c | 2 |
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")); |
