diff options
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 14b32a4cd7bb..c8447af76ead 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -2679,7 +2679,19 @@ ieee80211_rx_h_action_return(struct ieee80211_rx_data *rx) | |||
2679 | 2679 | ||
2680 | memset(nskb->cb, 0, sizeof(nskb->cb)); | 2680 | memset(nskb->cb, 0, sizeof(nskb->cb)); |
2681 | 2681 | ||
2682 | ieee80211_tx_skb(rx->sdata, nskb); | 2682 | if (rx->sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE) { |
2683 | struct ieee80211_tx_info *info = IEEE80211_SKB_CB(nskb); | ||
2684 | |||
2685 | info->flags = IEEE80211_TX_CTL_TX_OFFCHAN | | ||
2686 | IEEE80211_TX_INTFL_OFFCHAN_TX_OK | | ||
2687 | IEEE80211_TX_CTL_NO_CCK_RATE; | ||
2688 | if (local->hw.flags & IEEE80211_HW_QUEUE_CONTROL) | ||
2689 | info->hw_queue = | ||
2690 | local->hw.offchannel_tx_hw_queue; | ||
2691 | } | ||
2692 | |||
2693 | __ieee80211_tx_skb_tid_band(rx->sdata, nskb, 7, | ||
2694 | status->band); | ||
2683 | } | 2695 | } |
2684 | dev_kfree_skb(rx->skb); | 2696 | dev_kfree_skb(rx->skb); |
2685 | return RX_QUEUED; | 2697 | return RX_QUEUED; |