From d2cc13ede973d3eecfd9a32f684449c37fc03103 Mon Sep 17 00:00:00 2001 From: Frank Liu Date: Thu, 6 Dec 2018 16:03:26 +0800 Subject: [PATCH] qcacmn: Restore the correct credit for EP qcacld-2.0 to qcacmn propagation Restore the correct credit for the flow control endpoint, add back all the credits consumed by the queue, if fail to send packet by HIFSend_head. Change-Id: I480f7aba5ce8c8d1e57caaae5b2bfcd77209091c CRs-Fixed: 2360669 --- htc/htc_send.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/htc/htc_send.c b/htc/htc_send.c index 251ac9cb54..39521db410 100644 --- a/htc/htc_send.c +++ b/htc/htc_send.c @@ -646,12 +646,15 @@ static QDF_STATUS htc_issue_packets(HTC_TARGET *target, target->ce_send_cnt--; pEndpoint->ul_outstanding_cnt--; HTC_PACKET_REMOVE(&pEndpoint->TxLookupQueue, pPacket); - /* reclaim credits */ - pEndpoint->TxCredits += - pPacket->PktInfo.AsTx.CreditsUsed; htc_packet_set_magic_cookie(pPacket, 0); /* put it back into the callers queue */ HTC_PACKET_ENQUEUE_TO_HEAD(pPktQueue, pPacket); + /* reclaim credits */ + HTC_PACKET_QUEUE_ITERATE_ALLOW_REMOVE(pPktQueue, + pPacket) { + pEndpoint->TxCredits += + pPacket->PktInfo.AsTx.CreditsUsed; + } HTC_PACKET_QUEUE_ITERATE_END; if (!pEndpoint->async_update) { UNLOCK_HTC_TX(target); }