diff options
| author | Manjunathappa Prakash <c_pmanju@qca.qualcomm.com> | 2015-03-26 11:59:31 -0700 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-06-22 20:50:25 +0530 |
| commit | 4e745226d130ce99fe4248ad0bf7fb0bb351d434 (patch) | |
| tree | 0ac07a5af9d00c2ef9f9fc16b278b522d4cebc74 | |
| parent | 8d800ddc2daeefa87ffddac905879f8bc603bab3 (diff) | |
qcacld-new: reduce the DMA buffer size to 4K
Reducing the DMA buffer size to 4K as packet size cannot be more than
4K.
Change-Id: I605080b3fb352f7fa61a3312ebd56ff19af80c4f
CRs-Fixed: 813885
| -rw-r--r-- | CORE/SERVICES/HIF/sdio/linux/native_sdio/include/hif_internal.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/HIF/sdio/linux/native_sdio/src/hif.c | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/CORE/SERVICES/HIF/sdio/linux/native_sdio/include/hif_internal.h b/CORE/SERVICES/HIF/sdio/linux/native_sdio/include/hif_internal.h index 234bc09fc931..382e38c1b92e 100644 --- a/CORE/SERVICES/HIF/sdio/linux/native_sdio/include/hif_internal.h +++ b/CORE/SERVICES/HIF/sdio/linux/native_sdio/include/hif_internal.h @@ -112,7 +112,7 @@ struct hif_device { A_BOOL swap_mailbox; }; -#define HIF_DMA_BUFFER_SIZE (56 * 1024) +#define HIF_DMA_BUFFER_SIZE (4 * 1024) #define CMD53_FIXED_ADDRESS 1 #define CMD53_INCR_ADDRESS 2 diff --git a/CORE/SERVICES/HIF/sdio/linux/native_sdio/src/hif.c b/CORE/SERVICES/HIF/sdio/linux/native_sdio/src/hif.c index c7b1349e86a8..29c3b1160b5e 100644 --- a/CORE/SERVICES/HIF/sdio/linux/native_sdio/src/hif.c +++ b/CORE/SERVICES/HIF/sdio/linux/native_sdio/src/hif.c @@ -406,6 +406,12 @@ __HIFReadWrite(HIF_DEVICE *device, tbuffer = device->dma_buffer; /* copy the write data to the dma buffer */ AR_DEBUG_ASSERT(length <= HIF_DMA_BUFFER_SIZE); + if (length > HIF_DMA_BUFFER_SIZE) { + AR_DEBUG_PRINTF(ATH_DEBUG_ERROR, + ("AR6000: Invalid write length: %d\n", length)); + status = A_EINVAL; + break; + } memcpy(tbuffer, buffer, length); bounced = TRUE; } else { @@ -428,6 +434,12 @@ __HIFReadWrite(HIF_DEVICE *device, if (BUFFER_NEEDS_BOUNCE(buffer)) { AR_DEBUG_ASSERT(device->dma_buffer != NULL); AR_DEBUG_ASSERT(length <= HIF_DMA_BUFFER_SIZE); + if (length > HIF_DMA_BUFFER_SIZE) { + AR_DEBUG_PRINTF(ATH_DEBUG_ERROR, + ("AR6000: Invalid read length: %d\n", length)); + status = A_EINVAL; + break; + } tbuffer = device->dma_buffer; bounced = TRUE; } else { |
