提交 fa05f128 编写于 作者: J Jens Axboe

Update net/ to use sg helpers

Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
上级 60c74f81
...@@ -2045,7 +2045,7 @@ skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int len) ...@@ -2045,7 +2045,7 @@ skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int len)
if (copy > 0) { if (copy > 0) {
if (copy > len) if (copy > len)
copy = len; copy = len;
sg[elt].page = virt_to_page(skb->data + offset); sg_set_page(&sg[elt], virt_to_page(skb->data + offset));
sg[elt].offset = (unsigned long)(skb->data + offset) % PAGE_SIZE; sg[elt].offset = (unsigned long)(skb->data + offset) % PAGE_SIZE;
sg[elt].length = copy; sg[elt].length = copy;
elt++; elt++;
...@@ -2065,7 +2065,7 @@ skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int len) ...@@ -2065,7 +2065,7 @@ skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int len)
if (copy > len) if (copy > len)
copy = len; copy = len;
sg[elt].page = frag->page; sg_set_page(&sg[elt], frag->page);
sg[elt].offset = frag->page_offset+offset-start; sg[elt].offset = frag->page_offset+offset-start;
sg[elt].length = copy; sg[elt].length = copy;
elt++; elt++;
......
...@@ -390,9 +390,7 @@ static int ieee80211_tkip_encrypt(struct sk_buff *skb, int hdr_len, void *priv) ...@@ -390,9 +390,7 @@ static int ieee80211_tkip_encrypt(struct sk_buff *skb, int hdr_len, void *priv)
icv[3] = crc >> 24; icv[3] = crc >> 24;
crypto_blkcipher_setkey(tkey->tx_tfm_arc4, rc4key, 16); crypto_blkcipher_setkey(tkey->tx_tfm_arc4, rc4key, 16);
sg.page = virt_to_page(pos); sg_init_one(&sg, pos, len + 4);
sg.offset = offset_in_page(pos);
sg.length = len + 4;
return crypto_blkcipher_encrypt(&desc, &sg, &sg, len + 4); return crypto_blkcipher_encrypt(&desc, &sg, &sg, len + 4);
} }
...@@ -485,9 +483,7 @@ static int ieee80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv) ...@@ -485,9 +483,7 @@ static int ieee80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv)
plen = skb->len - hdr_len - 12; plen = skb->len - hdr_len - 12;
crypto_blkcipher_setkey(tkey->rx_tfm_arc4, rc4key, 16); crypto_blkcipher_setkey(tkey->rx_tfm_arc4, rc4key, 16);
sg.page = virt_to_page(pos); sg_init_one(&sg, pos, plen + 4);
sg.offset = offset_in_page(pos);
sg.length = plen + 4;
if (crypto_blkcipher_decrypt(&desc, &sg, &sg, plen + 4)) { if (crypto_blkcipher_decrypt(&desc, &sg, &sg, plen + 4)) {
if (net_ratelimit()) { if (net_ratelimit()) {
printk(KERN_DEBUG ": TKIP: failed to decrypt " 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,11 +535,12 @@ static int michael_mic(struct crypto_hash *tfm_michael, u8 * key, u8 * hdr,
printk(KERN_WARNING "michael_mic: tfm_michael == NULL\n"); printk(KERN_WARNING "michael_mic: tfm_michael == NULL\n");
return -1; return -1;
} }
sg[0].page = virt_to_page(hdr); sg_init_table(sg, 2);
sg_set_page(&sg[0], virt_to_page(hdr));
sg[0].offset = offset_in_page(hdr); sg[0].offset = offset_in_page(hdr);
sg[0].length = 16; sg[0].length = 16;
sg[1].page = virt_to_page(data); sg_set_page(&sg[1], virt_to_page(data));
sg[1].offset = offset_in_page(data); sg[1].offset = offset_in_page(data);
sg[1].length = data_len; sg[1].length = data_len;
......
...@@ -170,9 +170,7 @@ static int prism2_wep_encrypt(struct sk_buff *skb, int hdr_len, void *priv) ...@@ -170,9 +170,7 @@ static int prism2_wep_encrypt(struct sk_buff *skb, int hdr_len, void *priv)
icv[3] = crc >> 24; icv[3] = crc >> 24;
crypto_blkcipher_setkey(wep->tx_tfm, key, klen); crypto_blkcipher_setkey(wep->tx_tfm, key, klen);
sg.page = virt_to_page(pos); sg_init_one(&sg, pos, len + 4);
sg.offset = offset_in_page(pos);
sg.length = len + 4;
return crypto_blkcipher_encrypt(&desc, &sg, &sg, len + 4); return crypto_blkcipher_encrypt(&desc, &sg, &sg, len + 4);
} }
...@@ -212,9 +210,7 @@ static int prism2_wep_decrypt(struct sk_buff *skb, int hdr_len, void *priv) ...@@ -212,9 +210,7 @@ static int prism2_wep_decrypt(struct sk_buff *skb, int hdr_len, void *priv)
plen = skb->len - hdr_len - 8; plen = skb->len - hdr_len - 8;
crypto_blkcipher_setkey(wep->rx_tfm, key, klen); crypto_blkcipher_setkey(wep->rx_tfm, key, klen);
sg.page = virt_to_page(pos); sg_init_one(&sg, pos, plen + 4);
sg.offset = offset_in_page(pos);
sg.length = plen + 4;
if (crypto_blkcipher_decrypt(&desc, &sg, &sg, plen + 4)) if (crypto_blkcipher_decrypt(&desc, &sg, &sg, plen + 4))
return -7; return -7;
......
...@@ -138,9 +138,7 @@ void ieee80211_wep_encrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key, ...@@ -138,9 +138,7 @@ void ieee80211_wep_encrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key,
*icv = cpu_to_le32(~crc32_le(~0, data, data_len)); *icv = cpu_to_le32(~crc32_le(~0, data, data_len));
crypto_blkcipher_setkey(tfm, rc4key, klen); crypto_blkcipher_setkey(tfm, rc4key, klen);
sg.page = virt_to_page(data); sg_init_one(&sg, data, data_len + WEP_ICV_LEN);
sg.offset = offset_in_page(data);
sg.length = data_len + WEP_ICV_LEN;
crypto_blkcipher_encrypt(&desc, &sg, &sg, sg.length); crypto_blkcipher_encrypt(&desc, &sg, &sg, sg.length);
} }
...@@ -204,9 +202,7 @@ int ieee80211_wep_decrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key, ...@@ -204,9 +202,7 @@ int ieee80211_wep_decrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key,
__le32 crc; __le32 crc;
crypto_blkcipher_setkey(tfm, rc4key, klen); crypto_blkcipher_setkey(tfm, rc4key, klen);
sg.page = virt_to_page(data); sg_init_one(&sg, data, data_len + WEP_ICV_LEN);
sg.offset = offset_in_page(data);
sg.length = data_len + WEP_ICV_LEN;
crypto_blkcipher_decrypt(&desc, &sg, &sg, sg.length); crypto_blkcipher_decrypt(&desc, &sg, &sg, sg.length);
crc = cpu_to_le32(~crc32_le(~0, data, data_len)); crc = cpu_to_le32(~crc32_le(~0, data, data_len));
......
...@@ -726,7 +726,8 @@ void sctp_auth_calculate_hmac(const struct sctp_association *asoc, ...@@ -726,7 +726,8 @@ void sctp_auth_calculate_hmac(const struct sctp_association *asoc,
/* set up scatter list */ /* set up scatter list */
end = skb_tail_pointer(skb); end = skb_tail_pointer(skb);
sg.page = virt_to_page(auth); sg_init_table(&sg, 1);
sg_set_page(&sg, virt_to_page(auth));
sg.offset = (unsigned long)(auth) % PAGE_SIZE; sg.offset = (unsigned long)(auth) % PAGE_SIZE;
sg.length = end - (unsigned char *)auth; sg.length = end - (unsigned char *)auth;
......
...@@ -1513,7 +1513,8 @@ static sctp_cookie_param_t *sctp_pack_cookie(const struct sctp_endpoint *ep, ...@@ -1513,7 +1513,8 @@ static sctp_cookie_param_t *sctp_pack_cookie(const struct sctp_endpoint *ep,
struct hash_desc desc; struct hash_desc desc;
/* Sign the message. */ /* Sign the message. */
sg.page = virt_to_page(&cookie->c); sg_init_table(&sg, 1);
sg_set_page(&sg, virt_to_page(&cookie->c));
sg.offset = (unsigned long)(&cookie->c) % PAGE_SIZE; sg.offset = (unsigned long)(&cookie->c) % PAGE_SIZE;
sg.length = bodysize; sg.length = bodysize;
keylen = SCTP_SECRET_SIZE; keylen = SCTP_SECRET_SIZE;
...@@ -1585,7 +1586,8 @@ struct sctp_association *sctp_unpack_cookie( ...@@ -1585,7 +1586,8 @@ struct sctp_association *sctp_unpack_cookie(
/* Check the signature. */ /* Check the signature. */
keylen = SCTP_SECRET_SIZE; keylen = SCTP_SECRET_SIZE;
sg.page = virt_to_page(bear_cookie); sg_init_table(&sg, 1);
sg_set_page(&sg, virt_to_page(bear_cookie));
sg.offset = (unsigned long)(bear_cookie) % PAGE_SIZE; sg.offset = (unsigned long)(bear_cookie) % PAGE_SIZE;
sg.length = bodysize; sg.length = bodysize;
key = (char *)ep->secret_key[ep->current_key]; key = (char *)ep->secret_key[ep->current_key];
......
...@@ -197,9 +197,9 @@ encryptor(struct scatterlist *sg, void *data) ...@@ -197,9 +197,9 @@ encryptor(struct scatterlist *sg, void *data)
int i = (page_pos + outbuf->page_base) >> PAGE_CACHE_SHIFT; int i = (page_pos + outbuf->page_base) >> PAGE_CACHE_SHIFT;
in_page = desc->pages[i]; in_page = desc->pages[i];
} else { } else {
in_page = sg->page; in_page = sg_page(sg);
} }
desc->infrags[desc->fragno].page = in_page; sg_set_page(&desc->infrags[desc->fragno], in_page);
desc->fragno++; desc->fragno++;
desc->fraglen += sg->length; desc->fraglen += sg->length;
desc->pos += sg->length; desc->pos += sg->length;
...@@ -215,11 +215,11 @@ encryptor(struct scatterlist *sg, void *data) ...@@ -215,11 +215,11 @@ encryptor(struct scatterlist *sg, void *data)
if (ret) if (ret)
return ret; return ret;
if (fraglen) { if (fraglen) {
desc->outfrags[0].page = sg->page; sg_set_page(&desc->outfrags[0], sg_page(sg));
desc->outfrags[0].offset = sg->offset + sg->length - fraglen; desc->outfrags[0].offset = sg->offset + sg->length - fraglen;
desc->outfrags[0].length = fraglen; desc->outfrags[0].length = fraglen;
desc->infrags[0] = desc->outfrags[0]; desc->infrags[0] = desc->outfrags[0];
desc->infrags[0].page = in_page; sg_set_page(&desc->infrags[0], in_page);
desc->fragno = 1; desc->fragno = 1;
desc->fraglen = fraglen; desc->fraglen = fraglen;
} else { } else {
...@@ -287,7 +287,7 @@ decryptor(struct scatterlist *sg, void *data) ...@@ -287,7 +287,7 @@ decryptor(struct scatterlist *sg, void *data)
if (ret) if (ret)
return ret; return ret;
if (fraglen) { if (fraglen) {
desc->frags[0].page = sg->page; sg_set_page(&desc->frags[0], sg_page(sg));
desc->frags[0].offset = sg->offset + sg->length - fraglen; desc->frags[0].offset = sg->offset + sg->length - fraglen;
desc->frags[0].length = fraglen; desc->frags[0].length = fraglen;
desc->fragno = 1; desc->fragno = 1;
......
...@@ -1059,7 +1059,7 @@ xdr_process_buf(struct xdr_buf *buf, unsigned int offset, unsigned int len, ...@@ -1059,7 +1059,7 @@ xdr_process_buf(struct xdr_buf *buf, unsigned int offset, unsigned int len,
do { do {
if (thislen > page_len) if (thislen > page_len)
thislen = page_len; thislen = page_len;
sg->page = buf->pages[i]; sg_set_page(sg, buf->pages[i]);
sg->offset = page_offset; sg->offset = page_offset;
sg->length = thislen; sg->length = thislen;
ret = actor(sg, data); ret = actor(sg, data);
......
...@@ -552,7 +552,7 @@ int skb_icv_walk(const struct sk_buff *skb, struct hash_desc *desc, ...@@ -552,7 +552,7 @@ int skb_icv_walk(const struct sk_buff *skb, struct hash_desc *desc,
if (copy > len) if (copy > len)
copy = len; copy = len;
sg.page = virt_to_page(skb->data + offset); sg_set_page(&sg, virt_to_page(skb->data + offset));
sg.offset = (unsigned long)(skb->data + offset) % PAGE_SIZE; sg.offset = (unsigned long)(skb->data + offset) % PAGE_SIZE;
sg.length = copy; sg.length = copy;
...@@ -577,7 +577,7 @@ int skb_icv_walk(const struct sk_buff *skb, struct hash_desc *desc, ...@@ -577,7 +577,7 @@ int skb_icv_walk(const struct sk_buff *skb, struct hash_desc *desc,
if (copy > len) if (copy > len)
copy = len; copy = len;
sg.page = frag->page; sg_set_page(&sg, frag->page);
sg.offset = frag->page_offset + offset-start; sg.offset = frag->page_offset + offset-start;
sg.length = copy; sg.length = copy;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册