diff options
Diffstat (limited to 'net/ieee80211/ieee80211_crypt_tkip.c')
-rw-r--r-- | net/ieee80211/ieee80211_crypt_tkip.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/net/ieee80211/ieee80211_crypt_tkip.c b/net/ieee80211/ieee80211_crypt_tkip.c index 72e6ab66834f..c796661a021b 100644 --- a/net/ieee80211/ieee80211_crypt_tkip.c +++ b/net/ieee80211/ieee80211_crypt_tkip.c | |||
@@ -390,9 +390,7 @@ static int ieee80211_tkip_encrypt(struct sk_buff *skb, int hdr_len, void *priv) | |||
390 | icv[3] = crc >> 24; | 390 | icv[3] = crc >> 24; |
391 | 391 | ||
392 | crypto_blkcipher_setkey(tkey->tx_tfm_arc4, rc4key, 16); | 392 | crypto_blkcipher_setkey(tkey->tx_tfm_arc4, rc4key, 16); |
393 | sg.page = virt_to_page(pos); | 393 | sg_init_one(&sg, pos, len + 4); |
394 | sg.offset = offset_in_page(pos); | ||
395 | sg.length = len + 4; | ||
396 | return crypto_blkcipher_encrypt(&desc, &sg, &sg, len + 4); | 394 | return crypto_blkcipher_encrypt(&desc, &sg, &sg, len + 4); |
397 | } | 395 | } |
398 | 396 | ||
@@ -485,9 +483,7 @@ static int ieee80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv) | |||
485 | plen = skb->len - hdr_len - 12; | 483 | plen = skb->len - hdr_len - 12; |
486 | 484 | ||
487 | crypto_blkcipher_setkey(tkey->rx_tfm_arc4, rc4key, 16); | 485 | crypto_blkcipher_setkey(tkey->rx_tfm_arc4, rc4key, 16); |
488 | sg.page = virt_to_page(pos); | 486 | sg_init_one(&sg, pos, plen + 4); |
489 | sg.offset = offset_in_page(pos); | ||
490 | sg.length = plen + 4; | ||
491 | if (crypto_blkcipher_decrypt(&desc, &sg, &sg, plen + 4)) { | 487 | if (crypto_blkcipher_decrypt(&desc, &sg, &sg, plen + 4)) { |
492 | if (net_ratelimit()) { | 488 | if (net_ratelimit()) { |
493 | printk(KERN_DEBUG ": TKIP: failed to decrypt " | 489 | printk(KERN_DEBUG ": TKIP: failed to decrypt " |
@@ -539,11 +535,12 @@ static int michael_mic(struct crypto_hash *tfm_michael, u8 * key, u8 * hdr, | |||
539 | printk(KERN_WARNING "michael_mic: tfm_michael == NULL\n"); | 535 | printk(KERN_WARNING "michael_mic: tfm_michael == NULL\n"); |
540 | return -1; | 536 | return -1; |
541 | } | 537 | } |
542 | sg[0].page = virt_to_page(hdr); | 538 | sg_init_table(sg, 2); |
539 | sg_set_page(&sg[0], virt_to_page(hdr)); | ||
543 | sg[0].offset = offset_in_page(hdr); | 540 | sg[0].offset = offset_in_page(hdr); |
544 | sg[0].length = 16; | 541 | sg[0].length = 16; |
545 | 542 | ||
546 | sg[1].page = virt_to_page(data); | 543 | sg_set_page(&sg[1], virt_to_page(data)); |
547 | sg[1].offset = offset_in_page(data); | 544 | sg[1].offset = offset_in_page(data); |
548 | sg[1].length = data_len; | 545 | sg[1].length = data_len; |
549 | 546 | ||