diff options
-rw-r--r-- | net/mac80211/ieee80211_i.h | 4 | ||||
-rw-r--r-- | net/mac80211/rx.c | 8 | ||||
-rw-r--r-- | net/mac80211/tx.c | 1 |
3 files changed, 4 insertions, 9 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index a2870bc245d9..978c3a03ea57 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -172,7 +172,7 @@ struct ieee80211_tx_data { | |||
172 | struct sk_buff **extra_frag; | 172 | struct sk_buff **extra_frag; |
173 | int num_extra_frag; | 173 | int num_extra_frag; |
174 | 174 | ||
175 | u16 fc, ethertype; | 175 | u16 ethertype; |
176 | unsigned int flags; | 176 | unsigned int flags; |
177 | }; | 177 | }; |
178 | 178 | ||
@@ -200,7 +200,7 @@ struct ieee80211_rx_data { | |||
200 | struct ieee80211_rx_status *status; | 200 | struct ieee80211_rx_status *status; |
201 | struct ieee80211_rate *rate; | 201 | struct ieee80211_rate *rate; |
202 | 202 | ||
203 | u16 fc, ethertype; | 203 | u16 ethertype; |
204 | unsigned int flags; | 204 | unsigned int flags; |
205 | int sent_ps_buffered; | 205 | int sent_ps_buffered; |
206 | int queue; | 206 | int queue; |
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 3a96251379f9..2464263cb7a5 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -1057,7 +1057,6 @@ ieee80211_rx_h_remove_qos_control(struct ieee80211_rx_data *rx) | |||
1057 | ieee80211_hdrlen(hdr->frame_control) - IEEE80211_QOS_CTL_LEN); | 1057 | ieee80211_hdrlen(hdr->frame_control) - IEEE80211_QOS_CTL_LEN); |
1058 | hdr = (struct ieee80211_hdr *)skb_pull(rx->skb, IEEE80211_QOS_CTL_LEN); | 1058 | hdr = (struct ieee80211_hdr *)skb_pull(rx->skb, IEEE80211_QOS_CTL_LEN); |
1059 | /* change frame type to non QOS */ | 1059 | /* change frame type to non QOS */ |
1060 | rx->fc &= ~IEEE80211_STYPE_QOS_DATA; | ||
1061 | hdr->frame_control &= ~cpu_to_le16(IEEE80211_STYPE_QOS_DATA); | 1060 | hdr->frame_control &= ~cpu_to_le16(IEEE80211_STYPE_QOS_DATA); |
1062 | 1061 | ||
1063 | return RX_CONTINUE; | 1062 | return RX_CONTINUE; |
@@ -1831,7 +1830,6 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, | |||
1831 | 1830 | ||
1832 | rx.status = status; | 1831 | rx.status = status; |
1833 | rx.rate = rate; | 1832 | rx.rate = rate; |
1834 | rx.fc = le16_to_cpu(hdr->frame_control); | ||
1835 | 1833 | ||
1836 | if (ieee80211_is_data(hdr->frame_control) || ieee80211_is_mgmt(hdr->frame_control)) | 1834 | if (ieee80211_is_data(hdr->frame_control) || ieee80211_is_mgmt(hdr->frame_control)) |
1837 | local->dot11ReceivedFragmentCount++; | 1835 | local->dot11ReceivedFragmentCount++; |
@@ -1894,14 +1892,12 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, | |||
1894 | prev->dev->name); | 1892 | prev->dev->name); |
1895 | continue; | 1893 | continue; |
1896 | } | 1894 | } |
1897 | rx.fc = le16_to_cpu(hdr->frame_control); | ||
1898 | ieee80211_invoke_rx_handlers(prev, &rx, skb_new); | 1895 | ieee80211_invoke_rx_handlers(prev, &rx, skb_new); |
1899 | prev = sdata; | 1896 | prev = sdata; |
1900 | } | 1897 | } |
1901 | if (prev) { | 1898 | if (prev) |
1902 | rx.fc = le16_to_cpu(hdr->frame_control); | ||
1903 | ieee80211_invoke_rx_handlers(prev, &rx, skb); | 1899 | ieee80211_invoke_rx_handlers(prev, &rx, skb); |
1904 | } else | 1900 | else |
1905 | dev_kfree_skb(skb); | 1901 | dev_kfree_skb(skb); |
1906 | } | 1902 | } |
1907 | 1903 | ||
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 96ffb4d8dfbb..85f3ba85c132 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -993,7 +993,6 @@ __ieee80211_tx_prepare(struct ieee80211_tx_data *tx, | |||
993 | hdr = (struct ieee80211_hdr *) skb->data; | 993 | hdr = (struct ieee80211_hdr *) skb->data; |
994 | 994 | ||
995 | tx->sta = sta_info_get(local, hdr->addr1); | 995 | tx->sta = sta_info_get(local, hdr->addr1); |
996 | tx->fc = le16_to_cpu(hdr->frame_control); | ||
997 | 996 | ||
998 | if (is_multicast_ether_addr(hdr->addr1)) { | 997 | if (is_multicast_ether_addr(hdr->addr1)) { |
999 | tx->flags &= ~IEEE80211_TX_UNICAST; | 998 | tx->flags &= ~IEEE80211_TX_UNICAST; |