Commit 143b09ef authored by Tomas Winkler's avatar Tomas Winkler Committed by John W. Linville

iwlwifi: don't stop queue in the middle of fragmented packet

This patch avoids stopping queue in the middle of the fragmented packet.
It is required that there will be ~10 (max packet/min fragment) or 16
(4 bits of frag number) free tfds all the time.
Signed-off-by: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 8de394f6
...@@ -962,16 +962,16 @@ int iwl_tx_skb(struct iwl_priv *priv, struct sk_buff *skb) ...@@ -962,16 +962,16 @@ int iwl_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
if (ret) if (ret)
return ret; return ret;
if ((iwl_queue_space(q) < q->high_mark) if ((iwl_queue_space(q) < q->high_mark) && priv->mac80211_registered) {
&& priv->mac80211_registered) {
if (wait_write_ptr) { if (wait_write_ptr) {
spin_lock_irqsave(&priv->lock, flags); spin_lock_irqsave(&priv->lock, flags);
txq->need_update = 1; txq->need_update = 1;
iwl_txq_update_write_ptr(priv, txq); iwl_txq_update_write_ptr(priv, txq);
spin_unlock_irqrestore(&priv->lock, flags); spin_unlock_irqrestore(&priv->lock, flags);
} else {
ieee80211_stop_queue(priv->hw,
skb_get_queue_mapping(skb));
} }
ieee80211_stop_queue(priv->hw, skb_get_queue_mapping(skb));
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment