summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManjunathappa Prakash <c_pmanju@qca.qualcomm.com>2015-03-26 11:59:31 -0700
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-06-22 20:50:25 +0530
commit4e745226d130ce99fe4248ad0bf7fb0bb351d434 (patch)
tree0ac07a5af9d00c2ef9f9fc16b278b522d4cebc74
parent8d800ddc2daeefa87ffddac905879f8bc603bab3 (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.h2
-rw-r--r--CORE/SERVICES/HIF/sdio/linux/native_sdio/src/hif.c12
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 {