aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c14
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;