aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-03-12 08:49:14 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-03-13 14:54:17 -0400
commita8286911881948c7a2ecc63ee4224c258cce2da3 (patch)
treea35566503b81c654db55857f42fe9664d0aab3af /net/mac80211/rx.c
parent617bbde878604adfcd557fc2a8952f77ab4ebd95 (diff)
mac80211: linearize SKBs as needed for crypto
Not linearizing every SKB will help actually pass non-linear SKBs all the way up when on an encrypted connection. For now, linearize TKIP completely as it is lower performance and I don't quite grok all the details. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index b38da13e2a88..53c88d145472 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1063,10 +1063,6 @@ ieee80211_rx_h_decrypt(struct ieee80211_rx_data *rx)
1063 return RX_DROP_MONITOR; 1063 return RX_DROP_MONITOR;
1064 } 1064 }
1065 1065
1066 if (skb_linearize(rx->skb))
1067 return RX_DROP_UNUSABLE;
1068 /* the hdr variable is invalid now! */
1069
1070 switch (rx->key->conf.cipher) { 1066 switch (rx->key->conf.cipher) {
1071 case WLAN_CIPHER_SUITE_WEP40: 1067 case WLAN_CIPHER_SUITE_WEP40:
1072 case WLAN_CIPHER_SUITE_WEP104: 1068 case WLAN_CIPHER_SUITE_WEP104:
@@ -1089,6 +1085,8 @@ ieee80211_rx_h_decrypt(struct ieee80211_rx_data *rx)
1089 return RX_DROP_UNUSABLE; 1085 return RX_DROP_UNUSABLE;
1090 } 1086 }
1091 1087
1088 /* the hdr variable is invalid after the decrypt handlers */
1089
1092 /* either the frame has been decrypted or will be dropped */ 1090 /* either the frame has been decrypted or will be dropped */
1093 status->flag |= RX_FLAG_DECRYPTED; 1091 status->flag |= RX_FLAG_DECRYPTED;
1094 1092