diff options
-rw-r--r-- | net/mac80211/tx.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 9e952e37b7df..0820f127da2b 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -1487,7 +1487,20 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb, | |||
1487 | nh_pos += encaps_len; | 1487 | nh_pos += encaps_len; |
1488 | h_pos += encaps_len; | 1488 | h_pos += encaps_len; |
1489 | } | 1489 | } |
1490 | memcpy(skb_push(skb, hdrlen), &hdr, hdrlen); | 1490 | |
1491 | if (fc & IEEE80211_STYPE_QOS_DATA) { | ||
1492 | __le16 *qos_control; | ||
1493 | |||
1494 | qos_control = (__le16*) skb_push(skb, 2); | ||
1495 | memcpy(skb_push(skb, hdrlen - 2), &hdr, hdrlen - 2); | ||
1496 | /* | ||
1497 | * Maybe we could actually set some fields here, for now just | ||
1498 | * initialise to zero to indicate no special operation. | ||
1499 | */ | ||
1500 | *qos_control = 0; | ||
1501 | } else | ||
1502 | memcpy(skb_push(skb, hdrlen), &hdr, hdrlen); | ||
1503 | |||
1491 | nh_pos += hdrlen; | 1504 | nh_pos += hdrlen; |
1492 | h_pos += hdrlen; | 1505 | h_pos += hdrlen; |
1493 | 1506 | ||