diff --git a/core/dp/txrx/ol_txrx_flow_control.c b/core/dp/txrx/ol_txrx_flow_control.c index f53b60630268..774f2ad5d891 100644 --- a/core/dp/txrx/ol_txrx_flow_control.c +++ b/core/dp/txrx/ol_txrx_flow_control.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2015-2019 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -544,14 +544,14 @@ ol_tx_distribute_descs_to_deficient_pools(struct ol_tx_flow_pool_t *src_pool) qdf_spin_lock_bh(&dst_pool->flow_pool_lock); if (dst_pool->status == FLOW_POOL_ACTIVE_PAUSED) { if (dst_pool->avail_desc > dst_pool->start_th) { - pdev->pause_cb(dst_pool->member_flow_id, - WLAN_WAKE_ALL_NETIF_QUEUE, - WLAN_DATA_FLOW_CONTROL); - pdev->pause_cb(dst_pool->member_flow_id, WLAN_NETIF_PRIORITY_QUEUE_ON, WLAN_DATA_FLOW_CONTROL_PRIORITY); + pdev->pause_cb(dst_pool->member_flow_id, + WLAN_WAKE_ALL_NETIF_QUEUE, + WLAN_DATA_FLOW_CONTROL); + dst_pool->status = FLOW_POOL_ACTIVE_UNPAUSED; } @@ -802,6 +802,9 @@ void ol_tx_flow_pool_map_handler(uint8_t flow_id, uint8_t flow_type, case FLOW_TYPE_VDEV: ol_tx_flow_pool_vdev_map(pool, flow_id); + pdev->pause_cb(flow_id, + WLAN_NETIF_PRIORITY_QUEUE_ON, + WLAN_DATA_FLOW_CONTROL_PRIORITY); pdev->pause_cb(flow_id, WLAN_WAKE_ALL_NETIF_QUEUE, WLAN_DATA_FLOW_CONTROL);