aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/mac80211.h9
-rw-r--r--net/mac80211/wpa.c17
2 files changed, 0 insertions, 26 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 652dced0f3ec..a2c14f95b9a0 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -189,7 +189,6 @@ struct ieee80211_tx_control {
189#define IEEE80211_TXCTL_REQUEUE (1<<7) 189#define IEEE80211_TXCTL_REQUEUE (1<<7)
190#define IEEE80211_TXCTL_FIRST_FRAGMENT (1<<8) /* this is a first fragment of 190#define IEEE80211_TXCTL_FIRST_FRAGMENT (1<<8) /* this is a first fragment of
191 * the frame */ 191 * the frame */
192#define IEEE80211_TXCTL_TKIP_NEW_PHASE1_KEY (1<<9)
193#define IEEE80211_TXCTL_LONG_RETRY_LIMIT (1<<10) /* this frame should be send 192#define IEEE80211_TXCTL_LONG_RETRY_LIMIT (1<<10) /* this frame should be send
194 * using the through 193 * using the through
195 * set_retry_limit configured 194 * set_retry_limit configured
@@ -205,7 +204,6 @@ struct ieee80211_tx_control {
205 u8 antenna_sel_tx; /* 0 = default/diversity, 1 = Ant0, 2 = Ant1 */ 204 u8 antenna_sel_tx; /* 0 = default/diversity, 1 = Ant0, 2 = Ant1 */
206 u8 icv_len; /* length of the ICV/MIC field in octets */ 205 u8 icv_len; /* length of the ICV/MIC field in octets */
207 u8 iv_len; /* length of the IV field in octets */ 206 u8 iv_len; /* length of the IV field in octets */
208 u8 tkip_key[16]; /* generated phase2/phase1 key for hw TKIP */
209 u8 queue; /* hardware queue to use for this frame; 207 u8 queue; /* hardware queue to use for this frame;
210 * 0 = highest, hw->queues-1 = lowest */ 208 * 0 = highest, hw->queues-1 = lowest */
211 u8 sw_retry_attempt; /* number of times hw has tried to 209 u8 sw_retry_attempt; /* number of times hw has tried to
@@ -565,13 +563,6 @@ struct ieee80211_hw {
565 * specified in the device's EEPROM */ 563 * specified in the device's EEPROM */
566#define IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED (1<<11) 564#define IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED (1<<11)
567 565
568 /* Do TKIP phase1 key mixing in stack to support cards only do
569 * phase2 key mixing when doing hwcrypto */
570#define IEEE80211_HW_TKIP_REQ_PHASE1_KEY (1<<13)
571 /* Do TKIP phase1 and phase2 key mixing in stack and send the generated
572 * per-packet RC4 key with each TX frame when doing hwcrypto */
573#define IEEE80211_HW_TKIP_REQ_PHASE2_KEY (1<<14)
574
575 u32 flags; /* hardware flags defined above */ 566 u32 flags; /* hardware flags defined above */
576 567
577 /* Set to the size of a needed device specific skb headroom for TX skbs. */ 568 /* Set to the size of a needed device specific skb headroom for TX skbs. */
diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c
index a23531cef5b0..6e12638054aa 100644
--- a/net/mac80211/wpa.c
+++ b/net/mac80211/wpa.c
@@ -214,7 +214,6 @@ static int tkip_encrypt_skb(struct ieee80211_txrx_data *tx,
214 key->u.tkip.iv32++; 214 key->u.tkip.iv32++;
215 215
216 if (tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) { 216 if (tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) {
217 u32 flags = tx->local->hw.flags;
218 hdr = (struct ieee80211_hdr *)skb->data; 217 hdr = (struct ieee80211_hdr *)skb->data;
219 218
220 /* hwaccel - with preallocated room for IV */ 219 /* hwaccel - with preallocated room for IV */
@@ -224,22 +223,6 @@ static int tkip_encrypt_skb(struct ieee80211_txrx_data *tx,
224 0x7f), 223 0x7f),
225 (u8) key->u.tkip.iv16); 224 (u8) key->u.tkip.iv16);
226 225
227 if (flags & IEEE80211_HW_TKIP_REQ_PHASE2_KEY)
228 ieee80211_tkip_gen_rc4key(key, hdr->addr2,
229 tx->u.tx.control->tkip_key);
230 else if (flags & IEEE80211_HW_TKIP_REQ_PHASE1_KEY) {
231 if (key->u.tkip.iv16 == 0 ||
232 !key->u.tkip.tx_initialized) {
233 ieee80211_tkip_gen_phase1key(key, hdr->addr2,
234 (u16 *)tx->u.tx.control->tkip_key);
235 key->u.tkip.tx_initialized = 1;
236 tx->u.tx.control->flags |=
237 IEEE80211_TXCTL_TKIP_NEW_PHASE1_KEY;
238 } else
239 tx->u.tx.control->flags &=
240 ~IEEE80211_TXCTL_TKIP_NEW_PHASE1_KEY;
241 }
242
243 tx->u.tx.control->key_idx = tx->key->conf.hw_key_idx; 226 tx->u.tx.control->key_idx = tx->key->conf.hw_key_idx;
244 return 0; 227 return 0;
245 } 228 }