[PATCH 08/13] ath10k: bring back the WMI path for mgmt frames

Michal Kazior michal.kazior at tieto.com
Wed Sep 25 06:46:58 EDT 2013


On 25 September 2013 11:38, Bartosz Markowski
<bartosz.markowski at tieto.com> wrote:
> @@ -1497,16 +1497,23 @@ static void ath10k_tx_htt(struct ath10k *ar, struct sk_buff *skb)
>                 goto exit;
>         }
>
> -       if (ieee80211_is_mgmt(hdr->frame_control))
> -               ret = ath10k_htt_mgmt_tx(&ar->htt, skb);
> -       else if (ieee80211_is_nullfunc(hdr->frame_control))
> +       if (ieee80211_is_mgmt(hdr->frame_control)) {
> +               if (test_bit(ATH10K_FW_FEATURE_HAS_WMI_MGMT_TX,
> +                            ar->fw_features))
> +                       ret = ath10k_wmi_mgmt_tx(ar, skb);

Due to recent changes (WMI commands can block/sleep) this cannot be
so. ath10k_tx_htt() is called from an atomic context.

I'm seeing 2 aproaches here:
 a) management frame queue,
 b) use ieee80211_{stop,wake}_queues()

I'm worried (b) could degrade throughput. WMI endpoint has only 2 HTC
credits meaning management frame bursts will lock out data frame tx.


Michał.



More information about the ath10k mailing list