Commit b423db5b356749e3e39faad607d387cd4c1a9d30

Authored by Helmut Schaa
Committed by John W. Linville
1 parent dc0d633e35

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>

Showing 1 changed file with 0 additions and 20 deletions Side-by-side Diff

... ... @@ -1576,25 +1576,6 @@
1576 1576 return RX_CONTINUE;
1577 1577 }
1578 1578  
1579   -static ieee80211_rx_result debug_noinline
1580   -ieee80211_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   -
1598 1579 static int
1599 1580 ieee80211_802_1x_port_control(struct ieee80211_rx_data *rx)
1600 1581 {
... ... @@ -2718,7 +2699,6 @@
2718 2699 if (ieee80211_vif_is_mesh(&rx->sdata->vif))
2719 2700 CALL_RXH(ieee80211_rx_h_mesh_fwding);
2720 2701 #endif
2721   - CALL_RXH(ieee80211_rx_h_remove_qos_control)
2722 2702 CALL_RXH(ieee80211_rx_h_amsdu)
2723 2703 CALL_RXH(ieee80211_rx_h_data)
2724 2704 CALL_RXH(ieee80211_rx_h_ctrl);