Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 570bd537 authored by Johannes Berg's avatar Johannes Berg Committed by David S. Miller
Browse files

[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: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJiri Benc <jbenc@suse.cz>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 8e6f0032
Loading
Loading
Loading
Loading
+11 −1
Original line number Original line Diff line number Diff line
@@ -234,7 +234,6 @@ static ieee80211_txrx_result
ieee80211_rx_h_check(struct ieee80211_txrx_data *rx)
ieee80211_rx_h_check(struct ieee80211_txrx_data *rx)
{
{
	struct ieee80211_hdr *hdr;
	struct ieee80211_hdr *hdr;
	int always_sta_key;
	hdr = (struct ieee80211_hdr *) rx->skb->data;
	hdr = (struct ieee80211_hdr *) rx->skb->data;


	/* Drop duplicate 802.11 retransmissions (IEEE 802.11 Chap. 9.2.9) */
	/* 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_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)
	if (rx->sdata->type == IEEE80211_IF_TYPE_STA)
		always_sta_key = 0;
		always_sta_key = 0;
	else
	else
@@ -1208,6 +1217,7 @@ ieee80211_rx_handler ieee80211_rx_handlers[] =
	ieee80211_rx_h_monitor,
	ieee80211_rx_h_monitor,
	ieee80211_rx_h_passive_scan,
	ieee80211_rx_h_passive_scan,
	ieee80211_rx_h_check,
	ieee80211_rx_h_check,
	ieee80211_rx_h_load_key,
	ieee80211_rx_h_sta_process,
	ieee80211_rx_h_sta_process,
	ieee80211_rx_h_ccmp_decrypt,
	ieee80211_rx_h_ccmp_decrypt,
	ieee80211_rx_h_tkip_decrypt,
	ieee80211_rx_h_tkip_decrypt,