From 570bd537a9a1520ddebfed772bcf6eaf7510bec4 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Fri, 27 Jul 2007 15:43:22 +0200 Subject: [PATCH] [MAC80211]: split ieee80211_rx_h_check handler The ieee80211_rx_h_check handler really does two things, it's a lot easier to understand if it's split into ieee80211_rx_h_check and ieee80211_rx_h_load_key, and it may be possible in the future to optimise the key loading to not do it for each interface. Signed-off-by: Johannes Berg Signed-off-by: Jiri Benc Signed-off-by: John W. Linville --- net/mac80211/rx.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index b46ba7c..f7a1b61 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -234,7 +234,6 @@ static ieee80211_txrx_result ieee80211_rx_h_check(struct ieee80211_txrx_data *rx) { struct ieee80211_hdr *hdr; - int always_sta_key; hdr = (struct ieee80211_hdr *) rx->skb->data; /* Drop duplicate 802.11 retransmissions (IEEE 802.11 Chap. 9.2.9) */ @@ -302,6 +301,16 @@ ieee80211_rx_h_check(struct ieee80211_txrx_data *rx) return TXRX_QUEUED; } + return TXRX_CONTINUE; +} + + +static ieee80211_txrx_result +ieee80211_rx_h_load_key(struct ieee80211_txrx_data *rx) +{ + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data; + int always_sta_key; + if (rx->sdata->type == IEEE80211_IF_TYPE_STA) always_sta_key = 0; else @@ -1208,6 +1217,7 @@ ieee80211_rx_handler ieee80211_rx_handlers[] = ieee80211_rx_h_monitor, ieee80211_rx_h_passive_scan, ieee80211_rx_h_check, + ieee80211_rx_h_load_key, ieee80211_rx_h_sta_process, ieee80211_rx_h_ccmp_decrypt, ieee80211_rx_h_tkip_decrypt, -- 2.7.4