diff --git a/dp/wifi3.0/dp_rx_mon_dest.c b/dp/wifi3.0/dp_rx_mon_dest.c index 58dcf30a7c..68e65ef977 100644 --- a/dp/wifi3.0/dp_rx_mon_dest.c +++ b/dp/wifi3.0/dp_rx_mon_dest.c @@ -795,7 +795,13 @@ void dp_rx_mon_dest_process(struct dp_soc *soc, uint32_t mac_id, uint32_t quota) ppdu_id, pdev->ppdu_info.com_info.ppdu_id); break; } - + if (qdf_unlikely(head_msdu == NULL) || + qdf_unlikely(tail_msdu == NULL)) { + QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR, + "%s %d : Head_msdu or Tail_msdu is NULL !!\n", + __func__, __LINE__); + break; + } dp_rx_mon_deliver(soc, mac_id, head_msdu, tail_msdu); rxdma_dst_ring_desc = hal_srng_dst_get_next(hal_soc, diff --git a/dp/wifi3.0/dp_rx_mon_status.c b/dp/wifi3.0/dp_rx_mon_status.c index edb3c2af36..03ab9e922b 100644 --- a/dp/wifi3.0/dp_rx_mon_status.c +++ b/dp/wifi3.0/dp_rx_mon_status.c @@ -724,13 +724,22 @@ QDF_STATUS dp_rx_mon_status_buffers_replenish(struct dp_soc *dp_soc, paddr = qdf_nbuf_get_frag_paddr(rx_netbuf, 0); next = (*desc_list)->next; + rxdma_ring_entry = hal_srng_src_get_next(dp_soc->hal_soc, + rxdma_srng); + + if (qdf_unlikely(rxdma_ring_entry == NULL)) { + QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR, + "[%s][%d] rxdma_ring_entry is NULL, count - %d\n", + __func__, __LINE__, count); + qdf_nbuf_unmap_single(dp_soc->osdev, rx_netbuf, + QDF_DMA_BIDIRECTIONAL); + qdf_nbuf_free(rx_netbuf); + break; + } (*desc_list)->rx_desc.nbuf = rx_netbuf; (*desc_list)->rx_desc.in_use = 1; - count++; - rxdma_ring_entry = hal_srng_src_get_next(dp_soc->hal_soc, - rxdma_srng); hal_rxdma_buff_addr_info_set(rxdma_ring_entry, paddr, (*desc_list)->rx_desc.cookie, owner);