Skip to content

Commit 1b46c77

Browse files
Krishna Trlubos
authored andcommitted
drivers: wifi: Add a sanity check for packet ram
In case we allocate more TX/RX buffers we end up overflowing packet ram causing issues, so, add a sanity check. Signed-off-by: Krishna T <[email protected]>
1 parent a4f5952 commit 1b46c77

File tree

1 file changed

+12
-0
lines changed
  • drivers/wifi/nrf700x/osal/hw_if/hal/src

1 file changed

+12
-0
lines changed

drivers/wifi/nrf700x/osal/hw_if/hal/src/hal_api.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "hal_interrupt.h"
1818
#include "pal.h"
1919

20+
#define RPU_PKTRAM_SIZE (RPU_ADDR_PKTRAM_END - RPU_ADDR_PKTRAM_START + 1)
2021

2122
#ifndef CONFIG_NRF700X_RADIO_TEST
2223
static enum wifi_nrf_status
@@ -51,6 +52,17 @@ wifi_nrf_hal_rpu_pktram_buf_map_init(struct wifi_nrf_hal_dev_ctx *hal_dev_ctx)
5152
hal_dev_ctx->hpriv->cfg_params.rx_buf_pool[pool_idx - 1].buf_sz));
5253
}
5354

55+
if ((hal_dev_ctx->addr_rpu_pktram_base_rx_pool[MAX_NUM_OF_RX_QUEUES - 1] +
56+
(hal_dev_ctx->hpriv->cfg_params.rx_buf_pool[MAX_NUM_OF_RX_QUEUES - 1].num_bufs *
57+
hal_dev_ctx->hpriv->cfg_params.rx_buf_pool[MAX_NUM_OF_RX_QUEUES - 1].buf_sz)) >
58+
(hal_dev_ctx->addr_rpu_pktram_base + RPU_PKTRAM_SIZE)) {
59+
wifi_nrf_osal_log_err(hal_dev_ctx->hpriv->opriv,
60+
"%s: RPU PKTRAM buffer overflowed\n",
61+
__func__);
62+
status = WIFI_NRF_STATUS_FAIL;
63+
goto out;
64+
}
65+
5466
status = WIFI_NRF_STATUS_SUCCESS;
5567
out:
5668
return status;

0 commit comments

Comments
 (0)