aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorHelmut Schaa <helmut.schaa@googlemail.com>2011-12-19 05:39:54 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-01-04 14:28:07 -0500
commitb423db5b356749e3e39faad607d387cd4c1a9d30 (patch)
tree59d89927aea6c1e93f5728a1a9eb89b436f538f4 /net
parentdc0d633e35643662f27a0b1c531da3cd6b204b9c (diff)
mac80211: Remove superfluous ieee80211_rx_h_remove_qos_control
This seems to not serve any purpose anymore, at least all frame processing afterwards seems to be able to deal with QoS frames. So, let's save the expensive memmove and just leave the QoS header in the 802.11 frame for further processing. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/rx.c20
1 files changed, 0 insertions, 20 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 59f124c58333..f407427c642f 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1576,25 +1576,6 @@ ieee80211_rx_h_defragment(struct ieee80211_rx_data *rx)
1576 return RX_CONTINUE; 1576 return RX_CONTINUE;
1577} 1577}
1578 1578
1579static ieee80211_rx_result debug_noinline
1580ieee80211_rx_h_remove_qos_control(struct ieee80211_rx_data *rx)
1581{
1582 u8 *data = rx->skb->data;
1583 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)data;
1584
1585 if (!ieee80211_is_data_qos(hdr->frame_control))
1586 return RX_CONTINUE;
1587
1588 /* remove the qos control field, update frame type and meta-data */
1589 memmove(data + IEEE80211_QOS_CTL_LEN, data,
1590 ieee80211_hdrlen(hdr->frame_control) - IEEE80211_QOS_CTL_LEN);
1591 hdr = (struct ieee80211_hdr *)skb_pull(rx->skb, IEEE80211_QOS_CTL_LEN);
1592 /* change frame type to non QOS */
1593 hdr->frame_control &= ~cpu_to_le16(IEEE80211_STYPE_QOS_DATA);
1594
1595 return RX_CONTINUE;
1596}
1597
1598static int 1579static int
1599ieee80211_802_1x_port_control(struct ieee80211_rx_data *rx) 1580ieee80211_802_1x_port_control(struct ieee80211_rx_data *rx)
1600{ 1581{
@@ -2718,7 +2699,6 @@ static void ieee80211_rx_handlers(struct ieee80211_rx_data *rx)
2718 if (ieee80211_vif_is_mesh(&rx->sdata->vif)) 2699 if (ieee80211_vif_is_mesh(&rx->sdata->vif))
2719 CALL_RXH(ieee80211_rx_h_mesh_fwding); 2700 CALL_RXH(ieee80211_rx_h_mesh_fwding);
2720#endif 2701#endif
2721 CALL_RXH(ieee80211_rx_h_remove_qos_control)
2722 CALL_RXH(ieee80211_rx_h_amsdu) 2702 CALL_RXH(ieee80211_rx_h_amsdu)
2723 CALL_RXH(ieee80211_rx_h_data) 2703 CALL_RXH(ieee80211_rx_h_data)
2724 CALL_RXH(ieee80211_rx_h_ctrl); 2704 CALL_RXH(ieee80211_rx_h_ctrl);