diff --git a/components/ipa/core/src/wlan_ipa_core.c b/components/ipa/core/src/wlan_ipa_core.c index 25122483e02f..25e32d8e30d7 100644 --- a/components/ipa/core/src/wlan_ipa_core.c +++ b/components/ipa/core/src/wlan_ipa_core.c @@ -710,13 +710,12 @@ static enum wlan_ipa_forward_type wlan_ipa_intrabss_forward( { int ret = WLAN_IPA_FORWARD_PKT_NONE; void *soc = cds_get_context(QDF_MODULE_ID_SOC); - struct ol_txrx_pdev_t *pdev = cds_get_context(QDF_MODULE_ID_TXRX); + void *pdev = cds_get_context(QDF_MODULE_ID_TXRX); if ((desc & FW_RX_DESC_FORWARD_M)) { - if (!ol_txrx_fwd_desc_thresh_check( - (struct ol_txrx_vdev_t *)cdp_get_vdev_from_vdev_id(soc, - (struct cdp_pdev *)pdev, - iface_ctx->session_id))) { + void *vdev = cdp_get_vdev_from_vdev_id(soc, pdev, + iface_ctx->session_id); + if (cdp_tx_desc_thresh_reached(soc, vdev)) { /* Drop the packet*/ ipa_ctx->stats.num_tx_fwd_err++; dev_kfree_skb_any(skb); diff --git a/core/dp/txrx/ol_rx_fwd.c b/core/dp/txrx/ol_rx_fwd.c index d80bf2fbfd94..226f6dc7df7c 100644 --- a/core/dp/txrx/ol_rx_fwd.c +++ b/core/dp/txrx/ol_rx_fwd.c @@ -190,7 +190,8 @@ ol_rx_fwd_check(struct ol_txrx_vdev_t *vdev, QDF_NBUF_TX_EXT_TID_INVALID); } - if (!ol_txrx_fwd_desc_thresh_check(vdev)) { + if (!ol_txrx_fwd_desc_thresh_check( + (struct cdp_vdev *)vdev)) { /* Drop the packet*/ htt_rx_msdu_desc_free(pdev->htt_pdev, msdu); TXRX_STATS_MSDU_LIST_INCR( diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c index 4a1777c3506b..fe0977041f12 100644 --- a/core/dp/txrx/ol_txrx.c +++ b/core/dp/txrx/ol_txrx.c @@ -5556,6 +5556,7 @@ static struct cdp_flowctl_ops ol_ops_flowctl = { .register_pause_cb = ol_txrx_register_pause_cb, .set_desc_global_pool_size = ol_tx_set_desc_global_pool_size, .dump_flow_pool_info = ol_tx_dump_flow_pool_info, + .tx_desc_thresh_reached = ol_txrx_fwd_desc_thresh_check, #endif /* QCA_LL_TX_FLOW_CONTROL_V2 */ }; diff --git a/core/dp/txrx/ol_txrx.h b/core/dp/txrx/ol_txrx.h index e98211a6ec8f..df2c21fe3dac 100644 --- a/core/dp/txrx/ol_txrx.h +++ b/core/dp/txrx/ol_txrx.h @@ -314,7 +314,7 @@ QDF_STATUS ol_txrx_register_pause_cb(struct cdp_soc_t *soc, * Return: true ; forward the packet, i.e., below threshold * false; not enough descriptors, drop the packet */ -bool ol_txrx_fwd_desc_thresh_check(struct ol_txrx_vdev_t *vdev); +bool ol_txrx_fwd_desc_thresh_check(struct cdp_vdev *vdev); #else /** * ol_tx_get_total_free_desc() - get total free descriptors @@ -329,7 +329,7 @@ uint32_t ol_tx_get_total_free_desc(struct ol_txrx_pdev_t *pdev) } static inline -bool ol_txrx_fwd_desc_thresh_check(struct ol_txrx_vdev_t *vdev) +bool ol_txrx_fwd_desc_thresh_check(struct cdp_vdev *vdev) { return true; } diff --git a/core/dp/txrx/ol_txrx_flow_control.c b/core/dp/txrx/ol_txrx_flow_control.c index ee516880f9f8..f53b60630268 100644 --- a/core/dp/txrx/ol_txrx_flow_control.c +++ b/core/dp/txrx/ol_txrx_flow_control.c @@ -83,16 +83,16 @@ ol_tx_deregister_global_mgmt_pool(struct ol_txrx_pdev_t *pdev) } #endif -bool -ol_txrx_fwd_desc_thresh_check(struct ol_txrx_vdev_t *vdev) +bool ol_txrx_fwd_desc_thresh_check(struct cdp_vdev *vdev) { + struct ol_txrx_vdev_t *txrx_vdev = (struct ol_txrx_vdev_t *)vdev; struct ol_tx_flow_pool_t *pool; bool enough_desc_flag; - if (!vdev) + if (!txrx_vdev) return false; - pool = vdev->pool; + pool = txrx_vdev->pool; if (!pool) return false;