diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2008-07-24 14:33:42 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-08-01 15:31:33 -0400 |
commit | 143b09efb74efd3328f57d7a4bd6d7663c1d6497 (patch) | |
tree | 1f78779f1b34fc51c38a1f1a16df81157aebf29e /drivers | |
parent | 8de394f60235a825b32f30441290a44251eca45d (diff) |
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: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-tx.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c index f72cd0bf6aa3..0182e4da8e35 100644 --- a/drivers/net/wireless/iwlwifi/iwl-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-tx.c | |||
@@ -962,16 +962,16 @@ int iwl_tx_skb(struct iwl_priv *priv, struct sk_buff *skb) | |||
962 | if (ret) | 962 | if (ret) |
963 | return ret; | 963 | return ret; |
964 | 964 | ||
965 | if ((iwl_queue_space(q) < q->high_mark) | 965 | if ((iwl_queue_space(q) < q->high_mark) && priv->mac80211_registered) { |
966 | && priv->mac80211_registered) { | ||
967 | if (wait_write_ptr) { | 966 | if (wait_write_ptr) { |
968 | spin_lock_irqsave(&priv->lock, flags); | 967 | spin_lock_irqsave(&priv->lock, flags); |
969 | txq->need_update = 1; | 968 | txq->need_update = 1; |
970 | iwl_txq_update_write_ptr(priv, txq); | 969 | iwl_txq_update_write_ptr(priv, txq); |
971 | spin_unlock_irqrestore(&priv->lock, flags); | 970 | spin_unlock_irqrestore(&priv->lock, flags); |
971 | } else { | ||
972 | ieee80211_stop_queue(priv->hw, | ||
973 | skb_get_queue_mapping(skb)); | ||
972 | } | 974 | } |
973 | |||
974 | ieee80211_stop_queue(priv->hw, skb_get_queue_mapping(skb)); | ||
975 | } | 975 | } |
976 | 976 | ||
977 | return 0; | 977 | return 0; |