mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-23 19:14:30 +08:00
iwlwifi: pass txq to wake/stop queue
Instead of passing the txq->swq_id, pass the txq struct directly to make sure that in the future nobody will pass an invalid number. Only three places actually change from using the txq_id or the skb's queue_mapping to now using txq->swq_id as well. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
This commit is contained in:
parent
4bea9b9902
commit
549a04e092
@ -297,7 +297,7 @@ static void iwl3945_tx_queue_reclaim(struct iwl_priv *priv,
|
||||
if (iwl_queue_space(q) > q->low_mark && (txq_id >= 0) &&
|
||||
(txq_id != IWL39_CMD_QUEUE_NUM) &&
|
||||
priv->mac80211_registered)
|
||||
iwl_wake_queue(priv, txq_id);
|
||||
iwl_wake_queue(priv, txq);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2239,7 +2239,7 @@ static void iwl4965_rx_reply_tx(struct iwl_priv *priv,
|
||||
if (priv->mac80211_registered &&
|
||||
(iwl_queue_space(&txq->q) > txq->q.low_mark) &&
|
||||
(agg->state != IWL_EMPTYING_HW_QUEUE_DELBA))
|
||||
iwl_wake_queue(priv, txq->swq_id);
|
||||
iwl_wake_queue(priv, txq);
|
||||
}
|
||||
} else {
|
||||
info->status.rates[0].count = tx_resp->failure_frame + 1;
|
||||
@ -2263,7 +2263,7 @@ static void iwl4965_rx_reply_tx(struct iwl_priv *priv,
|
||||
|
||||
if (priv->mac80211_registered &&
|
||||
(iwl_queue_space(&txq->q) > txq->q.low_mark))
|
||||
iwl_wake_queue(priv, txq_id);
|
||||
iwl_wake_queue(priv, txq);
|
||||
}
|
||||
if (qc && likely(sta_id != IWL_INVALID_STATION))
|
||||
iwlagn_txq_check_empty(priv, sta_id, tid, txq_id);
|
||||
|
@ -446,7 +446,7 @@ static void iwlagn_rx_reply_tx(struct iwl_priv *priv,
|
||||
if (priv->mac80211_registered &&
|
||||
(iwl_queue_space(&txq->q) > txq->q.low_mark) &&
|
||||
(agg->state != IWL_EMPTYING_HW_QUEUE_DELBA))
|
||||
iwl_wake_queue(priv, txq->swq_id);
|
||||
iwl_wake_queue(priv, txq);
|
||||
}
|
||||
} else {
|
||||
BUG_ON(txq_id != txq->swq_id);
|
||||
@ -456,7 +456,7 @@ static void iwlagn_rx_reply_tx(struct iwl_priv *priv,
|
||||
|
||||
if (priv->mac80211_registered &&
|
||||
(iwl_queue_space(&txq->q) > txq->q.low_mark))
|
||||
iwl_wake_queue(priv, txq_id);
|
||||
iwl_wake_queue(priv, txq);
|
||||
}
|
||||
|
||||
iwlagn_txq_check_empty(priv, sta_id, tid, txq_id);
|
||||
|
@ -783,7 +783,7 @@ int iwlagn_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
|
||||
iwl_txq_update_write_ptr(priv, txq);
|
||||
spin_unlock_irqrestore(&priv->lock, flags);
|
||||
} else {
|
||||
iwl_stop_queue(priv, txq->swq_id);
|
||||
iwl_stop_queue(priv, txq);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1408,7 +1408,7 @@ void iwlagn_rx_reply_compressed_ba(struct iwl_priv *priv,
|
||||
if ((iwl_queue_space(&txq->q) > txq->q.low_mark) &&
|
||||
priv->mac80211_registered &&
|
||||
(agg->state != IWL_EMPTYING_HW_QUEUE_DELBA))
|
||||
iwl_wake_queue(priv, txq->swq_id);
|
||||
iwl_wake_queue(priv, txq);
|
||||
|
||||
iwlagn_txq_check_empty(priv, sta_id, tid, scd_flow);
|
||||
}
|
||||
|
@ -116,8 +116,10 @@ static inline u8 iwl_virtual_agg_queue_num(u8 ac, u8 hwq)
|
||||
return 0x80 | (hwq << 2) | ac;
|
||||
}
|
||||
|
||||
static inline void iwl_wake_queue(struct iwl_priv *priv, u8 queue)
|
||||
static inline void iwl_wake_queue(struct iwl_priv *priv,
|
||||
struct iwl_tx_queue *txq)
|
||||
{
|
||||
u8 queue = txq->swq_id;
|
||||
u8 ac = queue;
|
||||
u8 hwq = queue;
|
||||
|
||||
@ -131,8 +133,10 @@ static inline void iwl_wake_queue(struct iwl_priv *priv, u8 queue)
|
||||
ieee80211_wake_queue(priv->hw, ac);
|
||||
}
|
||||
|
||||
static inline void iwl_stop_queue(struct iwl_priv *priv, u8 queue)
|
||||
static inline void iwl_stop_queue(struct iwl_priv *priv,
|
||||
struct iwl_tx_queue *txq)
|
||||
{
|
||||
u8 queue = txq->swq_id;
|
||||
u8 ac = queue;
|
||||
u8 hwq = queue;
|
||||
|
||||
|
@ -662,7 +662,7 @@ static int iwl3945_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
|
||||
spin_unlock_irqrestore(&priv->lock, flags);
|
||||
}
|
||||
|
||||
iwl_stop_queue(priv, skb_get_queue_mapping(skb));
|
||||
iwl_stop_queue(priv, txq);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user