diff options
-rw-r--r-- | net/mac80211/ieee80211_i.h | 3 | ||||
-rw-r--r-- | net/mac80211/tdls.c | 2 | ||||
-rw-r--r-- | net/mac80211/tx.c | 18 |
3 files changed, 14 insertions, 9 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 5a0dedd31266..9b0190eaff1e 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -1761,7 +1761,8 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb, | |||
1761 | struct net_device *dev); | 1761 | struct net_device *dev); |
1762 | void __ieee80211_subif_start_xmit(struct sk_buff *skb, | 1762 | void __ieee80211_subif_start_xmit(struct sk_buff *skb, |
1763 | struct net_device *dev, | 1763 | struct net_device *dev, |
1764 | u32 info_flags); | 1764 | u32 info_flags, |
1765 | u32 ctrl_flags); | ||
1765 | void ieee80211_purge_tx_queue(struct ieee80211_hw *hw, | 1766 | void ieee80211_purge_tx_queue(struct ieee80211_hw *hw, |
1766 | struct sk_buff_head *skbs); | 1767 | struct sk_buff_head *skbs); |
1767 | struct sk_buff * | 1768 | struct sk_buff * |
diff --git a/net/mac80211/tdls.c b/net/mac80211/tdls.c index d30690d79a58..24c37f91ca46 100644 --- a/net/mac80211/tdls.c +++ b/net/mac80211/tdls.c | |||
@@ -1056,7 +1056,7 @@ ieee80211_tdls_prep_mgmt_packet(struct wiphy *wiphy, struct net_device *dev, | |||
1056 | 1056 | ||
1057 | /* disable bottom halves when entering the Tx path */ | 1057 | /* disable bottom halves when entering the Tx path */ |
1058 | local_bh_disable(); | 1058 | local_bh_disable(); |
1059 | __ieee80211_subif_start_xmit(skb, dev, flags); | 1059 | __ieee80211_subif_start_xmit(skb, dev, flags, 0); |
1060 | local_bh_enable(); | 1060 | local_bh_enable(); |
1061 | 1061 | ||
1062 | return ret; | 1062 | return ret; |
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 9426bcce95e7..9e3678675f3b 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -2432,6 +2432,7 @@ static int ieee80211_lookup_ra_sta(struct ieee80211_sub_if_data *sdata, | |||
2432 | * @sdata: virtual interface to build the header for | 2432 | * @sdata: virtual interface to build the header for |
2433 | * @skb: the skb to build the header in | 2433 | * @skb: the skb to build the header in |
2434 | * @info_flags: skb flags to set | 2434 | * @info_flags: skb flags to set |
2435 | * @ctrl_flags: info control flags to set | ||
2435 | * | 2436 | * |
2436 | * This function takes the skb with 802.3 header and reformats the header to | 2437 | * This function takes the skb with 802.3 header and reformats the header to |
2437 | * the appropriate IEEE 802.11 header based on which interface the packet is | 2438 | * the appropriate IEEE 802.11 header based on which interface the packet is |
@@ -2447,7 +2448,7 @@ static int ieee80211_lookup_ra_sta(struct ieee80211_sub_if_data *sdata, | |||
2447 | */ | 2448 | */ |
2448 | static struct sk_buff *ieee80211_build_hdr(struct ieee80211_sub_if_data *sdata, | 2449 | static struct sk_buff *ieee80211_build_hdr(struct ieee80211_sub_if_data *sdata, |
2449 | struct sk_buff *skb, u32 info_flags, | 2450 | struct sk_buff *skb, u32 info_flags, |
2450 | struct sta_info *sta) | 2451 | struct sta_info *sta, u32 ctrl_flags) |
2451 | { | 2452 | { |
2452 | struct ieee80211_local *local = sdata->local; | 2453 | struct ieee80211_local *local = sdata->local; |
2453 | struct ieee80211_tx_info *info; | 2454 | struct ieee80211_tx_info *info; |
@@ -2824,6 +2825,7 @@ static struct sk_buff *ieee80211_build_hdr(struct ieee80211_sub_if_data *sdata, | |||
2824 | info->flags = info_flags; | 2825 | info->flags = info_flags; |
2825 | info->ack_frame_id = info_id; | 2826 | info->ack_frame_id = info_id; |
2826 | info->band = band; | 2827 | info->band = band; |
2828 | info->control.flags = ctrl_flags; | ||
2827 | 2829 | ||
2828 | return skb; | 2830 | return skb; |
2829 | free: | 2831 | free: |
@@ -3804,7 +3806,8 @@ EXPORT_SYMBOL(ieee80211_txq_schedule_end); | |||
3804 | 3806 | ||
3805 | void __ieee80211_subif_start_xmit(struct sk_buff *skb, | 3807 | void __ieee80211_subif_start_xmit(struct sk_buff *skb, |
3806 | struct net_device *dev, | 3808 | struct net_device *dev, |
3807 | u32 info_flags) | 3809 | u32 info_flags, |
3810 | u32 ctrl_flags) | ||
3808 | { | 3811 | { |
3809 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); | 3812 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); |
3810 | struct ieee80211_local *local = sdata->local; | 3813 | struct ieee80211_local *local = sdata->local; |
@@ -3878,7 +3881,8 @@ void __ieee80211_subif_start_xmit(struct sk_buff *skb, | |||
3878 | skb->prev = NULL; | 3881 | skb->prev = NULL; |
3879 | skb->next = NULL; | 3882 | skb->next = NULL; |
3880 | 3883 | ||
3881 | skb = ieee80211_build_hdr(sdata, skb, info_flags, sta); | 3884 | skb = ieee80211_build_hdr(sdata, skb, info_flags, |
3885 | sta, ctrl_flags); | ||
3882 | if (IS_ERR(skb)) | 3886 | if (IS_ERR(skb)) |
3883 | goto out; | 3887 | goto out; |
3884 | 3888 | ||
@@ -4018,9 +4022,9 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb, | |||
4018 | __skb_queue_head_init(&queue); | 4022 | __skb_queue_head_init(&queue); |
4019 | ieee80211_convert_to_unicast(skb, dev, &queue); | 4023 | ieee80211_convert_to_unicast(skb, dev, &queue); |
4020 | while ((skb = __skb_dequeue(&queue))) | 4024 | while ((skb = __skb_dequeue(&queue))) |
4021 | __ieee80211_subif_start_xmit(skb, dev, 0); | 4025 | __ieee80211_subif_start_xmit(skb, dev, 0, 0); |
4022 | } else { | 4026 | } else { |
4023 | __ieee80211_subif_start_xmit(skb, dev, 0); | 4027 | __ieee80211_subif_start_xmit(skb, dev, 0, 0); |
4024 | } | 4028 | } |
4025 | 4029 | ||
4026 | return NETDEV_TX_OK; | 4030 | return NETDEV_TX_OK; |
@@ -4045,7 +4049,7 @@ ieee80211_build_data_template(struct ieee80211_sub_if_data *sdata, | |||
4045 | goto out; | 4049 | goto out; |
4046 | } | 4050 | } |
4047 | 4051 | ||
4048 | skb = ieee80211_build_hdr(sdata, skb, info_flags, sta); | 4052 | skb = ieee80211_build_hdr(sdata, skb, info_flags, sta, 0); |
4049 | if (IS_ERR(skb)) | 4053 | if (IS_ERR(skb)) |
4050 | goto out; | 4054 | goto out; |
4051 | 4055 | ||
@@ -5082,7 +5086,7 @@ int ieee80211_tx_control_port(struct wiphy *wiphy, struct net_device *dev, | |||
5082 | skb_reset_mac_header(skb); | 5086 | skb_reset_mac_header(skb); |
5083 | 5087 | ||
5084 | local_bh_disable(); | 5088 | local_bh_disable(); |
5085 | __ieee80211_subif_start_xmit(skb, skb->dev, flags); | 5089 | __ieee80211_subif_start_xmit(skb, skb->dev, flags, 0); |
5086 | local_bh_enable(); | 5090 | local_bh_enable(); |
5087 | 5091 | ||
5088 | return 0; | 5092 | return 0; |