qcacmn: Fix the TX packet drop after doing the TX bundle
qcacld-2.0 to qcacmn propagation The driver will drop the TX packet if remaining depth of the sending queue is less than 2. This will casue the memory leak, credits missing and TCP stall issue when running the iperf test. The fix is to add back current packet before return, which just be dequeued. Change-Id: I9e0c69c16e9562afd627d0fc222a9fbd475c468c CRs-Fixed: 2056195
This commit is contained in:
@@ -501,8 +501,12 @@ static void htc_issue_packets_bundle(HTC_TARGET *target,
|
||||
htc_send_bundled_netbuf(target, pEndpoint,
|
||||
pBundleBuffer - last_credit_pad,
|
||||
pPacketTx);
|
||||
if (HTC_PACKET_QUEUE_DEPTH(pPktQueue) <
|
||||
/* One packet has been dequeued from sending queue when enter
|
||||
* this loop, so need to add 1 back for this checking.
|
||||
*/
|
||||
if ((HTC_PACKET_QUEUE_DEPTH(pPktQueue) + 1) <
|
||||
HTC_MIN_MSG_PER_BUNDLE) {
|
||||
HTC_PACKET_ENQUEUE_TO_HEAD(pPktQueue, pPacket);
|
||||
return;
|
||||
}
|
||||
bundlesSpaceRemaining =
|
||||
@@ -510,6 +514,7 @@ static void htc_issue_packets_bundle(HTC_TARGET *target,
|
||||
pEndpoint->TxCreditSize;
|
||||
pPacketTx = allocate_htc_bundle_packet(target);
|
||||
if (!pPacketTx) {
|
||||
HTC_PACKET_ENQUEUE_TO_HEAD(pPktQueue, pPacket);
|
||||
/* good time to panic */
|
||||
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,
|
||||
("allocate_htc_bundle_packet failed\n"));
|
||||
|
مرجع در شماره جدید
Block a user