summaryrefslogtreecommitdiff
path: root/hif
diff options
context:
space:
mode:
authorchenguo <chenguo@codeaurora.org>2017-09-19 16:27:24 +0800
committersnandini <snandini@codeaurora.org>2017-09-24 23:20:23 -0700
commitebc085458b2e0e79a33370a35e9e77602c6df0d0 (patch)
tree9fdeedcf56e53788fa136dcbc4011ccf23fc2193 /hif
parent482bc5ecbc219fbb16f3965afe6346061e4c6a87 (diff)
downloadqca-wfi-host-cmn-ebc085458b2e0e79a33370a35e9e77602c6df0d0.tar.gz
qcacmn: Fix RX dead loop for SDIO WLAN
There is a dead loop when nbuf allocation failed for SDIO WLAN. Do not change the status back to OK when E_RESOURCE is triggered. CRs-Fixed: 2112323 Change-Id: I50b8fff99707cdccb1e5e837558131d6777ec9c0
Diffstat (limited to 'hif')
-rw-r--r--hif/src/sdio/hif_sdio_recv.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/hif/src/sdio/hif_sdio_recv.c b/hif/src/sdio/hif_sdio_recv.c
index ce7666cc3..2f81932a4 100644
--- a/hif/src/sdio/hif_sdio_recv.c
+++ b/hif/src/sdio/hif_sdio_recv.c
@@ -283,10 +283,6 @@ QDF_STATUS hif_dev_alloc_and_prepare_rx_packets(struct hif_sdio_device *pdev,
}
if (QDF_IS_STATUS_ERROR(status)) {
- if (QDF_STATUS_E_RESOURCES == status) {
- /* this is actually okay */
- status = QDF_STATUS_SUCCESS;
- }
break;
}
@@ -294,7 +290,9 @@ QDF_STATUS hif_dev_alloc_and_prepare_rx_packets(struct hif_sdio_device *pdev,
UNLOCK_HIF_DEV_RX(pdev);
- if (QDF_IS_STATUS_ERROR(status)) {
+ /* for NO RESOURCE error, no need to flush data queue */
+ if (QDF_IS_STATUS_ERROR(status)
+ && (status != QDF_STATUS_E_RESOURCES)) {
while (!HTC_QUEUE_EMPTY(queue))
packet = htc_packet_dequeue(queue);
}