diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-06-17 07:13:00 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-07-10 14:57:54 -0400 |
commit | f1d58c2521eb160178b2151d6326d8dc5d7c8560 (patch) | |
tree | af373bb1a5fbb6bc9436d29095133992d33d6598 /net/mac80211/mlme.c | |
parent | 18ad01c43918751cc22f8ee28f6b38b8954a55b2 (diff) |
mac80211: push rx status into skb->cb
Within mac80211, we often need to copy the rx status into
skb->cb. This is wasteful, as drivers could be building it
in there to start with. This patch changes the API so that
drivers are expected to pass the RX status in skb->cb, now
accessible as IEEE80211_SKB_RXCB(skb). It also updates all
drivers to pass the rx status in there, but only by making
them memcpy() it into place before the call to the receive
function (ieee80211_rx(_irqsafe)). Each driver can now be
optimised on its own schedule.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r-- | net/mac80211/mlme.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index aca22b00b6a3..5e25d320deae 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -2063,8 +2063,7 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata, | |||
2063 | } | 2063 | } |
2064 | 2064 | ||
2065 | ieee80211_rx_result ieee80211_sta_rx_mgmt(struct ieee80211_sub_if_data *sdata, | 2065 | ieee80211_rx_result ieee80211_sta_rx_mgmt(struct ieee80211_sub_if_data *sdata, |
2066 | struct sk_buff *skb, | 2066 | struct sk_buff *skb) |
2067 | struct ieee80211_rx_status *rx_status) | ||
2068 | { | 2067 | { |
2069 | struct ieee80211_local *local = sdata->local; | 2068 | struct ieee80211_local *local = sdata->local; |
2070 | struct ieee80211_mgmt *mgmt; | 2069 | struct ieee80211_mgmt *mgmt; |
@@ -2080,7 +2079,6 @@ ieee80211_rx_result ieee80211_sta_rx_mgmt(struct ieee80211_sub_if_data *sdata, | |||
2080 | case IEEE80211_STYPE_PROBE_REQ: | 2079 | case IEEE80211_STYPE_PROBE_REQ: |
2081 | case IEEE80211_STYPE_PROBE_RESP: | 2080 | case IEEE80211_STYPE_PROBE_RESP: |
2082 | case IEEE80211_STYPE_BEACON: | 2081 | case IEEE80211_STYPE_BEACON: |
2083 | memcpy(skb->cb, rx_status, sizeof(*rx_status)); | ||
2084 | case IEEE80211_STYPE_AUTH: | 2082 | case IEEE80211_STYPE_AUTH: |
2085 | case IEEE80211_STYPE_ASSOC_RESP: | 2083 | case IEEE80211_STYPE_ASSOC_RESP: |
2086 | case IEEE80211_STYPE_REASSOC_RESP: | 2084 | case IEEE80211_STYPE_REASSOC_RESP: |