[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