|
@@ -1777,13 +1777,16 @@ static inline bool dp_rx_adjust_nbuf_len(struct dp_soc *soc,
|
|
|
{
|
|
|
bool last_nbuf;
|
|
|
uint32_t pkt_hdr_size;
|
|
|
+ uint16_t buf_size;
|
|
|
+
|
|
|
+ buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
|
|
|
|
|
|
pkt_hdr_size = soc->rx_pkt_tlv_size + l3_pad_len;
|
|
|
|
|
|
- if ((*mpdu_len + pkt_hdr_size) > RX_DATA_BUFFER_SIZE) {
|
|
|
- qdf_nbuf_set_pktlen(nbuf, RX_DATA_BUFFER_SIZE);
|
|
|
+ if ((*mpdu_len + pkt_hdr_size) > buf_size) {
|
|
|
+ qdf_nbuf_set_pktlen(nbuf, buf_size);
|
|
|
last_nbuf = false;
|
|
|
- *mpdu_len -= (RX_DATA_BUFFER_SIZE - pkt_hdr_size);
|
|
|
+ *mpdu_len -= (buf_size - pkt_hdr_size);
|
|
|
} else {
|
|
|
qdf_nbuf_set_pktlen(nbuf, (*mpdu_len + pkt_hdr_size));
|
|
|
last_nbuf = true;
|
|
@@ -3305,8 +3308,11 @@ QDF_STATUS dp_rx_pdev_desc_pool_init(struct dp_pdev *pdev)
|
|
|
struct dp_srng *dp_rxdma_srng;
|
|
|
struct rx_desc_pool *rx_desc_pool;
|
|
|
uint32_t target_type = hal_get_target_type(soc->hal_soc);
|
|
|
+ uint16_t buf_size;
|
|
|
|
|
|
+ buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
|
|
|
rx_desc_pool = &soc->rx_desc_buf[mac_for_pdev];
|
|
|
+
|
|
|
if (wlan_cfg_get_dp_pdev_nss_enabled(pdev->wlan_cfg_ctx)) {
|
|
|
/*
|
|
|
* If NSS is enabled, rx_desc_pool is already filled.
|
|
@@ -3331,7 +3337,7 @@ QDF_STATUS dp_rx_pdev_desc_pool_init(struct dp_pdev *pdev)
|
|
|
wlan_cfg_get_dp_soc_rx_sw_desc_num(soc->wlan_cfg_ctx);
|
|
|
|
|
|
rx_desc_pool->owner = dp_rx_get_rx_bm_id(soc);
|
|
|
- rx_desc_pool->buf_size = RX_DATA_BUFFER_SIZE;
|
|
|
+ rx_desc_pool->buf_size = buf_size;
|
|
|
rx_desc_pool->buf_alignment = RX_DATA_BUFFER_ALIGNMENT;
|
|
|
/* Disable monitor dest processing via frag */
|
|
|
if (target_type == TARGET_TYPE_QCN9160) {
|