Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 78176
b: refs/heads/master
c: 0c88443
h: refs/heads/master
v: v3
  • Loading branch information
Johannes Berg authored and David S. Miller committed Jan 28, 2008
1 parent 2b75368 commit e44ec58
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 59 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6b4e324164c683a7b4c1bd0be4d85f9a5a0f0e90
refs/heads/master: 0c884439dbd7c895cce61c4974c8868b0f6cd4a1
58 changes: 0 additions & 58 deletions trunk/net/mac80211/tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1527,64 +1527,6 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb,
return ret;
}

/*
* This is the transmit routine for the 802.11 type interfaces
* called by upper layers of the linux networking
* stack when it has a frame to transmit
*/
int ieee80211_mgmt_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct ieee80211_sub_if_data *sdata;
struct ieee80211_tx_packet_data *pkt_data;
struct ieee80211_hdr *hdr;
u16 fc;

sdata = IEEE80211_DEV_TO_SUB_IF(dev);

if (skb->len < 10) {
dev_kfree_skb(skb);
return 0;
}

if (skb_headroom(skb) < sdata->local->tx_headroom) {
if (pskb_expand_head(skb, sdata->local->tx_headroom,
0, GFP_ATOMIC)) {
dev_kfree_skb(skb);
return 0;
}
}

hdr = (struct ieee80211_hdr *) skb->data;
fc = le16_to_cpu(hdr->frame_control);

pkt_data = (struct ieee80211_tx_packet_data *) skb->cb;
memset(pkt_data, 0, sizeof(struct ieee80211_tx_packet_data));
pkt_data->ifindex = sdata->dev->ifindex;

skb->priority = 20; /* use hardcoded priority for mgmt TX queue */
skb->dev = sdata->local->mdev;

/*
* We're using the protocol field of the the frame control header
* to request TX callback for hostapd. BIT(1) is checked.
*/
if ((fc & BIT(1)) == BIT(1)) {
pkt_data->flags |= IEEE80211_TXPD_REQ_TX_STATUS;
fc &= ~BIT(1);
hdr->frame_control = cpu_to_le16(fc);
}

if (!(fc & IEEE80211_FCTL_PROTECTED))
pkt_data->flags |= IEEE80211_TXPD_DO_NOT_ENCRYPT;

dev->stats.tx_packets++;
dev->stats.tx_bytes += skb->len;

dev_queue_xmit(skb);

return 0;
}

/* helper functions for pending packets for when queues are stopped */

void ieee80211_clear_tx_pending(struct ieee80211_local *local)
Expand Down

0 comments on commit e44ec58

Please sign in to comment.