diff options
author | Oleksij Rempel <linux@rempel-privat.de> | 2014-02-04 04:27:48 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-02-12 15:36:02 -0500 |
commit | 341b29b9cd2fa470f2a2a55d7ef07cc167be93da (patch) | |
tree | 5005cd74fbfec9560a5b6d57eb0d0172b1c23bcd /drivers/net/wireless/ath/ath9k | |
parent | 5a078fcbdedf88cc3a76ed1b3b4a55a5c61a2e7f (diff) |
ath9k_htc: use ath9k_cmn_rx_skb_postprocess
Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 28 |
1 files changed, 3 insertions, 25 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c index e36bf61c4af3..c30af6d83141 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | |||
@@ -974,9 +974,7 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv, | |||
974 | struct ath_hw *ah = common->ah; | 974 | struct ath_hw *ah = common->ah; |
975 | struct ath_htc_rx_status *rxstatus; | 975 | struct ath_htc_rx_status *rxstatus; |
976 | struct ath_rx_status rx_stats; | 976 | struct ath_rx_status rx_stats; |
977 | int hdrlen, padsize; | ||
978 | bool decrypt_error; | 977 | bool decrypt_error; |
979 | __le16 fc; | ||
980 | 978 | ||
981 | if (skb->len < HTC_RX_FRAME_HEADER_SIZE) { | 979 | if (skb->len < HTC_RX_FRAME_HEADER_SIZE) { |
982 | ath_err(common, "Corrupted RX frame, dropping (len: %d)\n", | 980 | ath_err(common, "Corrupted RX frame, dropping (len: %d)\n", |
@@ -1000,16 +998,6 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv, | |||
1000 | memcpy(&rxbuf->rxstatus, rxstatus, HTC_RX_FRAME_HEADER_SIZE); | 998 | memcpy(&rxbuf->rxstatus, rxstatus, HTC_RX_FRAME_HEADER_SIZE); |
1001 | skb_pull(skb, HTC_RX_FRAME_HEADER_SIZE); | 999 | skb_pull(skb, HTC_RX_FRAME_HEADER_SIZE); |
1002 | 1000 | ||
1003 | hdr = (struct ieee80211_hdr *)skb->data; | ||
1004 | fc = hdr->frame_control; | ||
1005 | hdrlen = ieee80211_get_hdrlen_from_skb(skb); | ||
1006 | |||
1007 | padsize = hdrlen & 3; | ||
1008 | if (padsize && skb->len >= hdrlen+padsize+FCS_LEN) { | ||
1009 | memmove(skb->data + padsize, skb->data, hdrlen); | ||
1010 | skb_pull(skb, padsize); | ||
1011 | } | ||
1012 | |||
1013 | memset(rx_status, 0, sizeof(struct ieee80211_rx_status)); | 1001 | memset(rx_status, 0, sizeof(struct ieee80211_rx_status)); |
1014 | 1002 | ||
1015 | rx_status_htc_to_ath(&rx_stats, &rxbuf->rxstatus); | 1003 | rx_status_htc_to_ath(&rx_stats, &rxbuf->rxstatus); |
@@ -1018,23 +1006,13 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv, | |||
1018 | * everything but the rate is checked here, the rate check is done | 1006 | * everything but the rate is checked here, the rate check is done |
1019 | * separately to avoid doing two lookups for a rate for each frame. | 1007 | * separately to avoid doing two lookups for a rate for each frame. |
1020 | */ | 1008 | */ |
1009 | hdr = (struct ieee80211_hdr *)skb->data; | ||
1021 | if (!ath9k_cmn_rx_accept(common, hdr, rx_status, &rx_stats, | 1010 | if (!ath9k_cmn_rx_accept(common, hdr, rx_status, &rx_stats, |
1022 | &decrypt_error, priv->rxfilter)) | 1011 | &decrypt_error, priv->rxfilter)) |
1023 | goto rx_next; | 1012 | goto rx_next; |
1024 | 1013 | ||
1025 | if (!(rxbuf->rxstatus.rs_status & ATH9K_RXERR_DECRYPT)) { | 1014 | ath9k_cmn_rx_skb_postprocess(common, skb, &rx_stats, |
1026 | u8 keyix; | 1015 | rx_status, decrypt_error); |
1027 | keyix = rxbuf->rxstatus.rs_keyix; | ||
1028 | if (keyix != ATH9K_RXKEYIX_INVALID) { | ||
1029 | rx_status->flag |= RX_FLAG_DECRYPTED; | ||
1030 | } else if (ieee80211_has_protected(fc) && | ||
1031 | skb->len >= hdrlen + 4) { | ||
1032 | keyix = skb->data[hdrlen + 3] >> 6; | ||
1033 | if (test_bit(keyix, common->keymap)) | ||
1034 | rx_status->flag |= RX_FLAG_DECRYPTED; | ||
1035 | } | ||
1036 | } | ||
1037 | |||
1038 | 1016 | ||
1039 | if (ath9k_cmn_process_rate(common, hw, &rx_stats, rx_status)) | 1017 | if (ath9k_cmn_process_rate(common, hw, &rx_stats, rx_status)) |
1040 | goto rx_next; | 1018 | goto rx_next; |