qcacmn: Add sanity check for BA window size in DP
The original BA window size given from CP might > max DP supported, add sanity check based on HAL target allowed. Change-Id: Ibadaddeffe65165a89d580d8a5cbf5f7c724c809 CRs-Fixed: 3193852
This commit is contained in:

committed by
Madan Koyyalamudi

parent
bf92ed7b61
commit
a3585f6fe8
@@ -4293,15 +4293,23 @@ static void dp_check_ba_buffersize(struct dp_peer *peer,
|
||||
uint16_t buffersize)
|
||||
{
|
||||
struct dp_rx_tid *rx_tid = NULL;
|
||||
struct dp_soc *soc = peer->vdev->pdev->soc;
|
||||
uint16_t max_ba_window;
|
||||
|
||||
max_ba_window = hal_get_rx_max_ba_window(soc->hal_soc, tid);
|
||||
dp_info("Input buffersize %d, max dp allowed %d",
|
||||
buffersize, max_ba_window);
|
||||
/* Adjust BA window size, restrict it to max DP allowed */
|
||||
buffersize = QDF_MIN(buffersize, max_ba_window);
|
||||
|
||||
dp_info(QDF_MAC_ADDR_FMT" per_tid_basize_max_tid %d tid %d buffersize %d hw_buffer_size %d",
|
||||
peer->mac_addr.raw,
|
||||
peer->vdev->pdev->soc->per_tid_basize_max_tid, tid, buffersize,
|
||||
soc->per_tid_basize_max_tid, tid, buffersize,
|
||||
peer->hw_buffer_size);
|
||||
|
||||
rx_tid = &peer->rx_tid[tid];
|
||||
if (peer->vdev->pdev->soc->per_tid_basize_max_tid &&
|
||||
tid < peer->vdev->pdev->soc->per_tid_basize_max_tid) {
|
||||
if (soc->per_tid_basize_max_tid &&
|
||||
tid < soc->per_tid_basize_max_tid) {
|
||||
rx_tid->ba_win_size = buffersize;
|
||||
goto out;
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user