@@ -897,9 +897,9 @@ struct ieee80211_bss_conf {
* @IEEE80211_TX_CTL_RATE_CTRL_PROBE: internal to mac80211, can be
* set by rate control algorithms to indicate probe rate, will
* be cleared for fragmented frames (except on the last fragment)
- * @IEEE80211_TX_INTFL_OFFCHAN_TX_OK: Internal to mac80211. Used to indicate
- * that a frame can be transmitted while the queues are stopped for
- * off-channel operation.
+ * @IEEE80211_TX_INTFL_NOQUEUE_TX: Internal to mac80211. Indicates that a frame
+ * can't be queued and must be transmitted immediately. Frames with this
+ * flag ignore offchannel queue stops and bypass wake_tx_queue().
* @IEEE80211_TX_CTL_HW_80211_ENCAP: This frame uses hardware encapsulation
* (header conversion)
* @IEEE80211_TX_INTFL_RETRIED: completely internal to mac80211,
@@ -969,7 +969,7 @@ enum mac80211_tx_info_flags {
IEEE80211_TX_STAT_AMPDU = BIT(10),
IEEE80211_TX_STAT_AMPDU_NO_BACK = BIT(11),
IEEE80211_TX_CTL_RATE_CTRL_PROBE = BIT(12),
- IEEE80211_TX_INTFL_OFFCHAN_TX_OK = BIT(13),
+ IEEE80211_TX_INTFL_NOQUEUE_TX = BIT(13),
IEEE80211_TX_CTL_HW_80211_ENCAP = BIT(14),
IEEE80211_TX_INTFL_RETRIED = BIT(15),
IEEE80211_TX_INTFL_DONT_ENCRYPT = BIT(16),
@@ -2033,7 +2033,7 @@ void ieee80211_send_nullfunc(struct ieee80211_local *local,
nullfunc->frame_control |= cpu_to_le16(IEEE80211_FCTL_PM);
IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT |
- IEEE80211_TX_INTFL_OFFCHAN_TX_OK;
+ IEEE80211_TX_INTFL_NOQUEUE_TX;
if (ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS))
IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
@@ -1026,7 +1026,7 @@ int ieee80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
}
IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_CTL_TX_OFFCHAN |
- IEEE80211_TX_INTFL_OFFCHAN_TX_OK;
+ IEEE80211_TX_INTFL_NOQUEUE_TX;
if (ieee80211_hw_check(&local->hw, QUEUE_CONTROL))
IEEE80211_SKB_CB(skb)->hw_queue =
local->hw.offchannel_tx_hw_queue;
@@ -3970,7 +3970,7 @@ ieee80211_rx_h_action_return(struct ieee80211_rx_data *rx)
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(nskb);
info->flags = IEEE80211_TX_CTL_TX_OFFCHAN |
- IEEE80211_TX_INTFL_OFFCHAN_TX_OK |
+ IEEE80211_TX_INTFL_NOQUEUE_TX |
IEEE80211_TX_CTL_NO_CCK_RATE;
if (ieee80211_hw_check(&local->hw, QUEUE_CONTROL))
info->hw_queue =
@@ -668,7 +668,7 @@ static void ieee80211_scan_state_send_probe(struct ieee80211_local *local,
scan_req = rcu_dereference_protected(local->scan_req,
lockdep_is_held(&local->hw.wiphy->mtx));
- tx_flags = IEEE80211_TX_INTFL_OFFCHAN_TX_OK;
+ tx_flags = IEEE80211_TX_INTFL_NOQUEUE_TX;
if (scan_req->no_cck)
tx_flags |= IEEE80211_TX_CTL_NO_CCK_RATE;
if (scan_req->flags & NL80211_SCAN_FLAG_MIN_PREQ_CONTENT)
@@ -230,7 +230,7 @@ ieee80211_tx_h_dynamic_ps(struct ieee80211_tx_data *tx)
if (tx->sdata->vif.type != NL80211_IFTYPE_STATION)
return TX_CONTINUE;
- if (unlikely(info->flags & IEEE80211_TX_INTFL_OFFCHAN_TX_OK))
+ if (unlikely(info->flags & IEEE80211_TX_INTFL_NOQUEUE_TX))
return TX_CONTINUE;
ifmgd = &tx->sdata->u.mgd;
@@ -1300,7 +1300,7 @@ static struct txq_info *ieee80211_get_txq(struct ieee80211_local *local,
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
struct ieee80211_txq *txq = NULL;
- if (unlikely(info->flags & IEEE80211_TX_INTFL_OFFCHAN_TX_OK)) {
+ if (unlikely(info->flags & IEEE80211_TX_INTFL_NOQUEUE_TX)) {
if (sta)
txq = sta->sta.txq[IEEE80211_TXQ_NOQUEUE];
else
@@ -1817,7 +1817,7 @@ static void ieee80211_tx(struct ieee80211_sub_if_data *sdata,
struct ieee80211_tx_data tx;
ieee80211_tx_result res_prepare;
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
- bool noqueue = info->flags & IEEE80211_TX_INTFL_OFFCHAN_TX_OK;
+ bool noqueue = info->flags & IEEE80211_TX_INTFL_NOQUEUE_TX;
struct ieee80211_tx_control control;
struct txq_info *txqi;
@@ -1183,7 +1183,7 @@ void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata,
*/
IEEE80211_SKB_CB(skb)->flags |=
IEEE80211_TX_INTFL_DONT_ENCRYPT |
- IEEE80211_TX_INTFL_OFFCHAN_TX_OK;
+ IEEE80211_TX_INTFL_NOQUEUE_TX;
ieee80211_tx_skb(sdata, skb);
}
To make it clear that IEEE80211_TX_INTFL_OFFCHAN_TX_OK is now selecting the alternate TX path in mac80211 - which immediately sends the frame - the flag is renamed to IEEE80211_TX_INTFL_NOQUEUE_TX. Signed-off-by: Alexander Wetzel <Alexander@wetzel-home.de> --- include/net/mac80211.h | 8 ++++---- net/mac80211/mlme.c | 2 +- net/mac80211/offchannel.c | 2 +- net/mac80211/rx.c | 2 +- net/mac80211/scan.c | 2 +- net/mac80211/tx.c | 6 +++--- net/mac80211/util.c | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-)