[PATCH v7 0/4] ath11k/ath12k: implement TX flow control

Tamizh Raja tamizh.raja at oss.qualcomm.com
Wed Oct 14 09:23:49 PDT 2026


On Thu, Sep 17, 2026 at 12:18 PM Jose Ignacio Tornos Martinez
<jtornosm at redhat.com> wrote:
>
> This series implements custom wake_tx_queue operations for ath11k and
> ath12k drivers to prevent hardware ring overflow issues under heavy
> traffic.
>
> Without proper flow control, both drivers experience -ENOMEM errors
> ("failed to transmit frame -12") when the hardware TCL ring fills up.
> Additionally, ath12k can hang under sustained high throughput. These
> issues are more commonly observed in VMs with PCIe passthrough but
> also occur on bare metal systems.
>
> The implementation follows the pattern used in the iwlwifi driver,
> adapted for ath11k/ath12k hardware ring architecture, checking
> hardware ring space before dequeuing packets from mac80211.
>
> Testing shows stable operation with eliminated -ENOMEM errors, no hangs,
> and improved throughput under heavy traffic conditions.
>
> Jose Ignacio Tornos Martinez (4):
>   wifi: ath11k: use queue mapping for WCN6750 ring selection
>   wifi: ath11k/ath12k: remove skb parameter from get_ring_selector
>   wifi: ath11k: implement custom wake_tx_queue with flow control
>   wifi: ath12k: implement custom wake_tx_queue with flow control
>
> v7: No modification in patches 1 and 2
>     Address comments from Jeff Johnson:
>       Patch 3: Add the defensive pattern _bh in both spinlocks (ath11k)
>       Patch 4: Add the defensive pattern _bh in both spinlocks (ath12k)
> v6: https://lore.kernel.org/all/20260811172435.616200-1-jtornosm@redhat.com/
> --
> 2.49.0
>

There is another series touching the same area: "[PATCH ath-next v4
0/9] wifi: ath11k: airtime queue limits, fairness and a driver TXQ
scheduler".
It looks like there are some conflicts between the two. Could you
please take a look?
>


-- 
- Tamizh.



More information about the ath12k mailing list