diff --git a/dp/inc/cdp_txrx_stats_struct.h b/dp/inc/cdp_txrx_stats_struct.h index 3288fef65a60..71f379482317 100644 --- a/dp/inc/cdp_txrx_stats_struct.h +++ b/dp/inc/cdp_txrx_stats_struct.h @@ -505,6 +505,8 @@ struct cdp_tso_info { * @num_tso_pkts: Total number of TSO Packets * @tso_comp: Total tso packet completions * @dropped_host: TSO packets dropped by host + * @tso_no_mem_dropped: TSO packets dropped by host due to descriptor + unavailablity * @dropped_target: TSO packets_dropped by target * @tso_info: Per TSO packet counters * @seg_histogram: TSO histogram stats @@ -513,6 +515,7 @@ struct cdp_tso_stats { struct cdp_pkt_info num_tso_pkts; uint32_t tso_comp; struct cdp_pkt_info dropped_host; + struct cdp_pkt_info tso_no_mem_dropped; uint32_t dropped_target; #ifdef FEATURE_TSO_STATS struct cdp_tso_info tso_info; diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index 1e3b77e44a1b..921c7572806b 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/dp/wifi3.0/dp_tx.c @@ -585,8 +585,10 @@ static QDF_STATUS dp_tx_prepare_tso(struct dp_vdev *vdev, tso_info->tso_seg_list = tso_seg; num_seg--; } else { - DP_TRACE(ERROR, "%s: Failed to alloc tso seg desc", - __func__); + dp_err_rl("Failed to alloc tso seg desc"); + DP_STATS_INC_PKT(vdev->pdev, + tso_stats.tso_no_mem_dropped, 1, + qdf_nbuf_len(msdu)); dp_tx_free_remaining_tso_desc(soc, msdu_info, false); return QDF_STATUS_E_NOMEM;