|
@@ -2304,7 +2304,8 @@ static int ieee80211_mgmt_tx(struct wiphy *wiphy, struct net_device *dev,
|
|
|
|
|
|
IEEE80211_SKB_CB(skb)->flags = flags;
|
|
|
|
|
|
- if (flags & IEEE80211_TX_CTL_TX_OFFCHAN)
|
|
|
+ if (local->hw.flags & IEEE80211_HW_QUEUE_CONTROL &&
|
|
|
+ flags & IEEE80211_TX_CTL_TX_OFFCHAN)
|
|
|
IEEE80211_SKB_CB(skb)->hw_queue =
|
|
|
local->hw.offchannel_tx_hw_queue;
|
|
|
|
|
@@ -2349,8 +2350,9 @@ static int ieee80211_mgmt_tx(struct wiphy *wiphy, struct net_device *dev,
|
|
|
/* modify cookie to prevent API mismatches */
|
|
|
*cookie ^= 2;
|
|
|
IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_CTL_TX_OFFCHAN;
|
|
|
- IEEE80211_SKB_CB(skb)->hw_queue =
|
|
|
- local->hw.offchannel_tx_hw_queue;
|
|
|
+ if (local->hw.flags & IEEE80211_HW_QUEUE_CONTROL)
|
|
|
+ IEEE80211_SKB_CB(skb)->hw_queue =
|
|
|
+ local->hw.offchannel_tx_hw_queue;
|
|
|
local->hw_roc_skb = skb;
|
|
|
local->hw_roc_skb_for_status = skb;
|
|
|
mutex_unlock(&local->mtx);
|