aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/tx.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r--net/mac80211/tx.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 54e05392410d..8f0007a925a2 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -258,7 +258,7 @@ ieee80211_tx_h_check_assoc(struct ieee80211_txrx_data *tx)
258 return TXRX_CONTINUE; 258 return TXRX_CONTINUE;
259 } 259 }
260 260
261 if (unlikely(!tx->u.tx.mgmt_interface && tx->sdata->ieee802_1x && 261 if (unlikely(/* !injected && */ tx->sdata->ieee802_1x &&
262 !(sta_flags & WLAN_STA_AUTHORIZED))) { 262 !(sta_flags & WLAN_STA_AUTHORIZED))) {
263#ifdef CONFIG_MAC80211_VERBOSE_DEBUG 263#ifdef CONFIG_MAC80211_VERBOSE_DEBUG
264 DECLARE_MAC_BUF(mac); 264 DECLARE_MAC_BUF(mac);
@@ -570,8 +570,6 @@ ieee80211_tx_h_rate_ctrl(struct ieee80211_txrx_data *tx)
570 570
571 memset(&extra, 0, sizeof(extra)); 571 memset(&extra, 0, sizeof(extra));
572 extra.mode = tx->u.tx.mode; 572 extra.mode = tx->u.tx.mode;
573 extra.mgmt_data = tx->sdata &&
574 tx->sdata->type == IEEE80211_IF_TYPE_MGMT;
575 extra.ethertype = tx->ethertype; 573 extra.ethertype = tx->ethertype;
576 574
577 tx->u.tx.rate = rate_control_get_rate(tx->local, tx->dev, tx->skb, 575 tx->u.tx.rate = rate_control_get_rate(tx->local, tx->dev, tx->skb,
@@ -1069,7 +1067,7 @@ static int __ieee80211_tx(struct ieee80211_local *local, struct sk_buff *skb,
1069} 1067}
1070 1068
1071static int ieee80211_tx(struct net_device *dev, struct sk_buff *skb, 1069static int ieee80211_tx(struct net_device *dev, struct sk_buff *skb,
1072 struct ieee80211_tx_control *control, int mgmt) 1070 struct ieee80211_tx_control *control)
1073{ 1071{
1074 struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); 1072 struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
1075 struct sta_info *sta; 1073 struct sta_info *sta;
@@ -1099,7 +1097,6 @@ static int ieee80211_tx(struct net_device *dev, struct sk_buff *skb,
1099 rcu_read_lock(); 1097 rcu_read_lock();
1100 1098
1101 sta = tx.sta; 1099 sta = tx.sta;
1102 tx.u.tx.mgmt_interface = mgmt;
1103 tx.u.tx.mode = local->hw.conf.mode; 1100 tx.u.tx.mode = local->hw.conf.mode;
1104 1101
1105 if (res_prepare == TXRX_QUEUED) { /* if it was an injected packet */ 1102 if (res_prepare == TXRX_QUEUED) { /* if it was an injected packet */
@@ -1250,8 +1247,7 @@ int ieee80211_master_start_xmit(struct sk_buff *skb,
1250 control.flags |= IEEE80211_TXCTL_REQUEUE; 1247 control.flags |= IEEE80211_TXCTL_REQUEUE;
1251 control.queue = pkt_data->queue; 1248 control.queue = pkt_data->queue;
1252 1249
1253 ret = ieee80211_tx(odev, skb, &control, 1250 ret = ieee80211_tx(odev, skb, &control);
1254 control.type == IEEE80211_IF_TYPE_MGMT);
1255 dev_put(odev); 1251 dev_put(odev);
1256 1252
1257 return ret; 1253 return ret;
@@ -1496,8 +1492,6 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb,
1496 pkt_data = (struct ieee80211_tx_packet_data *)skb->cb; 1492 pkt_data = (struct ieee80211_tx_packet_data *)skb->cb;
1497 memset(pkt_data, 0, sizeof(struct ieee80211_tx_packet_data)); 1493 memset(pkt_data, 0, sizeof(struct ieee80211_tx_packet_data));
1498 pkt_data->ifindex = dev->ifindex; 1494 pkt_data->ifindex = dev->ifindex;
1499 if (sdata->type == IEEE80211_IF_TYPE_MGMT)
1500 pkt_data->flags |= IEEE80211_TXPD_MGMT_IFACE;
1501 1495
1502 skb->dev = local->mdev; 1496 skb->dev = local->mdev;
1503 dev->stats.tx_packets++; 1497 dev->stats.tx_packets++;
@@ -1555,8 +1549,6 @@ int ieee80211_mgmt_start_xmit(struct sk_buff *skb, struct net_device *dev)
1555 pkt_data = (struct ieee80211_tx_packet_data *) skb->cb; 1549 pkt_data = (struct ieee80211_tx_packet_data *) skb->cb;
1556 memset(pkt_data, 0, sizeof(struct ieee80211_tx_packet_data)); 1550 memset(pkt_data, 0, sizeof(struct ieee80211_tx_packet_data));
1557 pkt_data->ifindex = sdata->dev->ifindex; 1551 pkt_data->ifindex = sdata->dev->ifindex;
1558 if (sdata->type == IEEE80211_IF_TYPE_MGMT)
1559 pkt_data->flags |= IEEE80211_TXPD_MGMT_IFACE;
1560 1552
1561 skb->priority = 20; /* use hardcoded priority for mgmt TX queue */ 1553 skb->priority = 20; /* use hardcoded priority for mgmt TX queue */
1562 skb->dev = sdata->local->mdev; 1554 skb->dev = sdata->local->mdev;