diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-03 12:43:21 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-03 12:43:21 -0700 |
commit | 160acc2e899f26356bde92bc257253b7ca78f0c3 (patch) | |
tree | c60782685ac0fdf4b2d6278c4be639181dd65126 | |
parent | a7e1e001f432d5960b929787a2a261cf5a7ddac5 (diff) | |
parent | c46f2334c84c2b26baa64d42d75ddc5fab38c3dc (diff) |
Merge branch 'sg' of git://git.kernel.dk/linux-2.6-block
* 'sg' of git://git.kernel.dk/linux-2.6-block:
[SG] Get rid of __sg_mark_end()
cleanup asm/scatterlist.h includes
SG: Make sg_init_one() use general table init functions
43 files changed, 45 insertions, 75 deletions
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c index 56f2646612e6..54fd38589674 100644 --- a/block/ll_rw_blk.c +++ b/block/ll_rw_blk.c @@ -1369,7 +1369,7 @@ new_segment: } /* segments in rq */ if (sg) - __sg_mark_end(sg); + sg_mark_end(sg); return nsegs; } diff --git a/crypto/anubis.c b/crypto/anubis.c index 1c771f7f4dc5..4ff0e1e243ad 100644 --- a/crypto/anubis.c +++ b/crypto/anubis.c @@ -33,7 +33,6 @@ #include <linux/module.h> #include <linux/mm.h> #include <asm/byteorder.h> -#include <asm/scatterlist.h> #include <linux/crypto.h> #include <linux/types.h> diff --git a/crypto/blowfish.c b/crypto/blowfish.c index 55238c4e37f0..80c3fd8be97c 100644 --- a/crypto/blowfish.c +++ b/crypto/blowfish.c @@ -20,7 +20,6 @@ #include <linux/module.h> #include <linux/mm.h> #include <asm/byteorder.h> -#include <asm/scatterlist.h> #include <linux/crypto.h> #include <linux/types.h> diff --git a/crypto/compress.c b/crypto/compress.c index 0a6570048c1e..1ee357085d3a 100644 --- a/crypto/compress.c +++ b/crypto/compress.c @@ -14,7 +14,6 @@ #include <linux/types.h> #include <linux/crypto.h> #include <linux/errno.h> -#include <asm/scatterlist.h> #include <linux/string.h> #include "internal.h" diff --git a/crypto/crypto_null.c b/crypto/crypto_null.c index 24dbb5d8617e..29f77477d701 100644 --- a/crypto/crypto_null.c +++ b/crypto/crypto_null.c @@ -19,7 +19,6 @@ #include <linux/init.h> #include <linux/module.h> #include <linux/mm.h> -#include <asm/scatterlist.h> #include <linux/crypto.h> #include <linux/string.h> diff --git a/crypto/khazad.c b/crypto/khazad.c index 9fa24a2dd6ff..704ebfe26b55 100644 --- a/crypto/khazad.c +++ b/crypto/khazad.c @@ -23,7 +23,6 @@ #include <linux/module.h> #include <linux/mm.h> #include <asm/byteorder.h> -#include <asm/scatterlist.h> #include <linux/crypto.h> #include <linux/types.h> diff --git a/crypto/sha1_generic.c b/crypto/sha1_generic.c index 48a3c3e0bf5f..68c62f528eb5 100644 --- a/crypto/sha1_generic.c +++ b/crypto/sha1_generic.c @@ -23,7 +23,6 @@ #include <linux/cryptohash.h> #include <linux/types.h> #include <crypto/sha.h> -#include <asm/scatterlist.h> #include <asm/byteorder.h> struct sha1_ctx { diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c index 5f4332edcf6b..fd3918be58b5 100644 --- a/crypto/sha256_generic.c +++ b/crypto/sha256_generic.c @@ -22,7 +22,6 @@ #include <linux/crypto.h> #include <linux/types.h> #include <crypto/sha.h> -#include <asm/scatterlist.h> #include <asm/byteorder.h> struct sha256_ctx { diff --git a/crypto/sha512.c b/crypto/sha512.c index e736596ca574..c39c803ecc02 100644 --- a/crypto/sha512.c +++ b/crypto/sha512.c @@ -19,7 +19,6 @@ #include <linux/types.h> #include <crypto/sha.h> -#include <asm/scatterlist.h> #include <asm/byteorder.h> struct sha512_ctx { diff --git a/crypto/tea.c b/crypto/tea.c index 1c54e26fa529..6893b3fdf9d6 100644 --- a/crypto/tea.c +++ b/crypto/tea.c @@ -23,7 +23,6 @@ #include <linux/module.h> #include <linux/mm.h> #include <asm/byteorder.h> -#include <asm/scatterlist.h> #include <linux/crypto.h> #include <linux/types.h> diff --git a/crypto/tgr192.c b/crypto/tgr192.c index a0fadf3dd3e2..2e7ea1680c7f 100644 --- a/crypto/tgr192.c +++ b/crypto/tgr192.c @@ -25,7 +25,6 @@ #include <linux/module.h> #include <linux/mm.h> #include <asm/byteorder.h> -#include <asm/scatterlist.h> #include <linux/crypto.h> #include <linux/types.h> diff --git a/crypto/wp512.c b/crypto/wp512.c index 727d05a19ff4..f746952b93fc 100644 --- a/crypto/wp512.c +++ b/crypto/wp512.c @@ -23,7 +23,6 @@ #include <linux/module.h> #include <linux/mm.h> #include <asm/byteorder.h> -#include <asm/scatterlist.h> #include <linux/crypto.h> #include <linux/types.h> diff --git a/drivers/base/dmapool.c b/drivers/base/dmapool.c index 5beddc322e6f..b5034dc72a05 100644 --- a/drivers/base/dmapool.c +++ b/drivers/base/dmapool.c @@ -2,7 +2,6 @@ #include <linux/device.h> #include <linux/mm.h> #include <asm/io.h> /* Needed for i386 to build */ -#include <asm/scatterlist.h> /* Needed for i386 to build */ #include <linux/dma-mapping.h> #include <linux/dmapool.h> #include <linux/slab.h> diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c index d5dfe11aa5c6..b83d254bc86e 100644 --- a/drivers/ieee1394/sbp2.c +++ b/drivers/ieee1394/sbp2.c @@ -71,11 +71,11 @@ #include <linux/types.h> #include <linux/wait.h> #include <linux/workqueue.h> +#include <linux/scatterlist.h> #include <asm/byteorder.h> #include <asm/errno.h> #include <asm/param.h> -#include <asm/scatterlist.h> #include <asm/system.h> #include <asm/types.h> diff --git a/drivers/media/video/bt8xx/bttvp.h b/drivers/media/video/bt8xx/bttvp.h index 0b92c35a8435..d4ac4c4b49b4 100644 --- a/drivers/media/video/bt8xx/bttvp.h +++ b/drivers/media/video/bt8xx/bttvp.h @@ -36,7 +36,7 @@ #include <linux/pci.h> #include <linux/input.h> #include <linux/mutex.h> -#include <asm/scatterlist.h> +#include <linux/scatterlist.h> #include <asm/io.h> #include <media/v4l2-common.h> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 09435e0ec680..b96667448eb5 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -19,7 +19,6 @@ #include <linux/pagemap.h> #include <linux/err.h> #include <linux/leds.h> -#include <asm/scatterlist.h> #include <linux/scatterlist.h> #include <linux/mmc/card.h> diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c index 7471d49909b2..64b05c6270f2 100644 --- a/drivers/mmc/core/mmc_ops.c +++ b/drivers/mmc/core/mmc_ops.c @@ -10,7 +10,6 @@ */ #include <linux/types.h> -#include <asm/scatterlist.h> #include <linux/scatterlist.h> #include <linux/mmc/host.h> diff --git a/drivers/mmc/core/sd_ops.c b/drivers/mmc/core/sd_ops.c index a6dafe62b992..0d96080d44b0 100644 --- a/drivers/mmc/core/sd_ops.c +++ b/drivers/mmc/core/sd_ops.c @@ -10,7 +10,6 @@ */ #include <linux/types.h> -#include <asm/scatterlist.h> #include <linux/scatterlist.h> #include <linux/mmc/host.h> diff --git a/drivers/mmc/core/sdio_ops.c b/drivers/mmc/core/sdio_ops.c index 4d289b275031..e1fca588e385 100644 --- a/drivers/mmc/core/sdio_ops.c +++ b/drivers/mmc/core/sdio_ops.c @@ -9,7 +9,6 @@ * your option) any later version. */ -#include <asm/scatterlist.h> #include <linux/scatterlist.h> #include <linux/mmc/host.h> diff --git a/drivers/net/meth.c b/drivers/net/meth.c index e25dbab67363..0c89b028a80c 100644 --- a/drivers/net/meth.c +++ b/drivers/net/meth.c @@ -33,7 +33,6 @@ #include <asm/ip32/ip32_ints.h> #include <asm/io.h> -#include <asm/scatterlist.h> #include "meth.h" diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 61fdaf02f251..88de771d3569 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -785,7 +785,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask) * end-of-list */ if (!left) - sg_mark_end(sgl, this); + sg_mark_end(&sgl[this - 1]); /* * don't allow subsequent mempool allocs to sleep, it would diff --git a/drivers/usb/core/buffer.c b/drivers/usb/core/buffer.c index ead2475406b8..28d4972f7ad5 100644 --- a/drivers/usb/core/buffer.c +++ b/drivers/usb/core/buffer.c @@ -11,7 +11,6 @@ #include <linux/device.h> #include <linux/mm.h> #include <asm/io.h> -#include <asm/scatterlist.h> #include <linux/dma-mapping.h> #include <linux/dmapool.h> #include <linux/usb.h> diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index 3dd997df8505..fea8256a18d6 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c @@ -30,7 +30,6 @@ #include <linux/utsname.h> #include <linux/mm.h> #include <asm/io.h> -#include <asm/scatterlist.h> #include <linux/device.h> #include <linux/dma-mapping.h> #include <linux/mutex.h> diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c index 69aa68287d3f..c4a6f1095b8b 100644 --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c @@ -36,7 +36,7 @@ #include <linux/workqueue.h> #include <asm/io.h> -#include <asm/scatterlist.h> +#include <linux/scatterlist.h> #include <linux/mm.h> #include <linux/dma-mapping.h> diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c index 6f03918018a3..1602cd00dd45 100644 --- a/fs/nfsd/nfs4recover.c +++ b/fs/nfsd/nfs4recover.c @@ -43,7 +43,7 @@ #include <linux/file.h> #include <linux/namei.h> #include <asm/uaccess.h> -#include <asm/scatterlist.h> +#include <linux/scatterlist.h> #include <linux/crypto.h> #include <linux/sched.h> diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h index 32326c293d7b..259735044148 100644 --- a/include/linux/scatterlist.h +++ b/include/linux/scatterlist.h @@ -188,43 +188,23 @@ static inline void sg_chain(struct scatterlist *prv, unsigned int prv_nents, /** * sg_mark_end - Mark the end of the scatterlist - * @sgl: Scatterlist - * @nents: Number of entries in sgl + * @sg: SG entryScatterlist * * Description: - * Marks the last entry as the termination point for sg_next() + * Marks the passed in sg entry as the termination point for the sg + * table. A call to sg_next() on this entry will return NULL. * **/ -static inline void sg_mark_end(struct scatterlist *sgl, unsigned int nents) +static inline void sg_mark_end(struct scatterlist *sg) { - sgl[nents - 1].page_link = 0x02; -} - -static inline void __sg_mark_end(struct scatterlist *sg) -{ - sg->page_link |= 0x02; -} - -/** - * sg_init_one - Initialize a single entry sg list - * @sg: SG entry - * @buf: Virtual address for IO - * @buflen: IO length - * - * Notes: - * This should not be used on a single entry that is part of a larger - * table. Use sg_init_table() for that. - * - **/ -static inline void sg_init_one(struct scatterlist *sg, const void *buf, - unsigned int buflen) -{ - memset(sg, 0, sizeof(*sg)); #ifdef CONFIG_DEBUG_SG - sg->sg_magic = SG_MAGIC; + BUG_ON(sg->sg_magic != SG_MAGIC); #endif - sg_mark_end(sg, 1); - sg_set_buf(sg, buf, buflen); + /* + * Set termination bit, clear potential chain bit + */ + sg->page_link |= 0x02; + sg->page_link &= ~0x01; } /** @@ -240,7 +220,6 @@ static inline void sg_init_one(struct scatterlist *sg, const void *buf, static inline void sg_init_table(struct scatterlist *sgl, unsigned int nents) { memset(sgl, 0, sizeof(*sgl) * nents); - sg_mark_end(sgl, nents); #ifdef CONFIG_DEBUG_SG { unsigned int i; @@ -248,6 +227,25 @@ static inline void sg_init_table(struct scatterlist *sgl, unsigned int nents) sgl[i].sg_magic = SG_MAGIC; } #endif + sg_mark_end(&sgl[nents - 1]); +} + +/** + * sg_init_one - Initialize a single entry sg list + * @sg: SG entry + * @buf: Virtual address for IO + * @buflen: IO length + * + * Notes: + * This should not be used on a single entry that is part of a larger + * table. Use sg_init_table() for that. + * + **/ +static inline void sg_init_one(struct scatterlist *sg, const void *buf, + unsigned int buflen) +{ + sg_init_table(sg, 1); + sg_set_buf(sg, buf, buflen); } /** diff --git a/include/net/esp.h b/include/net/esp.h index c1bc529809da..c05f529bff28 100644 --- a/include/net/esp.h +++ b/include/net/esp.h @@ -3,7 +3,7 @@ #include <linux/crypto.h> #include <net/xfrm.h> -#include <asm/scatterlist.h> +#include <linux/scatterlist.h> #define ESP_NUM_FAST_SG 4 diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index 4bea182d7116..11f39606e7d9 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h @@ -48,9 +48,9 @@ #include <linux/kref.h> #include <linux/list.h> #include <linux/rwsem.h> +#include <linux/scatterlist.h> #include <asm/atomic.h> -#include <asm/scatterlist.h> #include <asm/uaccess.h> union ib_gid { diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h index 8dda2d66b5b9..a466c2cb8955 100644 --- a/include/scsi/libsas.h +++ b/include/scsi/libsas.h @@ -36,7 +36,7 @@ #include <scsi/scsi_device.h> #include <scsi/scsi_cmnd.h> #include <scsi/scsi_transport_sas.h> -#include <asm/scatterlist.h> +#include <linux/scatterlist.h> struct block_device; diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 64b50ff7a413..32d5826b7177 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -2095,7 +2095,7 @@ int skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int le { int nsg = __skb_to_sgvec(skb, sg, offset, len); - __sg_mark_end(&sg[nsg - 1]); + sg_mark_end(&sg[nsg - 1]); return nsg; } diff --git a/net/ieee80211/ieee80211_crypt_ccmp.c b/net/ieee80211/ieee80211_crypt_ccmp.c index 0936a3e0210b..c6d760d9fbbe 100644 --- a/net/ieee80211/ieee80211_crypt_ccmp.c +++ b/net/ieee80211/ieee80211_crypt_ccmp.c @@ -25,7 +25,6 @@ #include <net/ieee80211.h> #include <linux/crypto.h> -#include <asm/scatterlist.h> MODULE_AUTHOR("Jouni Malinen"); MODULE_DESCRIPTION("Host AP crypt: CCMP"); diff --git a/net/ipv4/ah4.c b/net/ipv4/ah4.c index 4e8e3b079f5b..5fc346d8b566 100644 --- a/net/ipv4/ah4.c +++ b/net/ipv4/ah4.c @@ -8,7 +8,6 @@ #include <linux/spinlock.h> #include <net/icmp.h> #include <net/protocol.h> -#include <asm/scatterlist.h> /* Clear mutable options and find final destination to substitute diff --git a/net/ipv4/ipcomp.c b/net/ipv4/ipcomp.c index 0bfeb02a5f87..ca1b5fdb8d31 100644 --- a/net/ipv4/ipcomp.c +++ b/net/ipv4/ipcomp.c @@ -14,7 +14,6 @@ * - Adaptive compression. */ #include <linux/module.h> -#include <asm/scatterlist.h> #include <asm/semaphore.h> #include <linux/crypto.h> #include <linux/pfkeyv2.h> diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index eec02b29ffcf..d438dfb0c8f3 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -1083,7 +1083,7 @@ static int tcp_v4_do_calc_md5_hash(char *md5_hash, struct tcp_md5sig_key *key, sg_set_buf(&sg[block++], key->key, key->keylen); nbytes += key->keylen; - __sg_mark_end(&sg[block - 1]); + sg_mark_end(&sg[block - 1]); /* Now store the Hash into the packet */ err = crypto_hash_init(desc); diff --git a/net/ipv6/ah6.c b/net/ipv6/ah6.c index 66a9139d46e9..4eaf55072b1b 100644 --- a/net/ipv6/ah6.c +++ b/net/ipv6/ah6.c @@ -35,7 +35,6 @@ #include <net/ipv6.h> #include <net/protocol.h> #include <net/xfrm.h> -#include <asm/scatterlist.h> static int zero_out_mutable_opts(struct ipv6_opt_hdr *opthdr) { diff --git a/net/ipv6/ipcomp6.c b/net/ipv6/ipcomp6.c index 80ef2a1d39fd..85eb4798d8d2 100644 --- a/net/ipv6/ipcomp6.c +++ b/net/ipv6/ipcomp6.c @@ -34,7 +34,6 @@ #include <net/ip.h> #include <net/xfrm.h> #include <net/ipcomp.h> -#include <asm/scatterlist.h> #include <asm/semaphore.h> #include <linux/crypto.h> #include <linux/pfkeyv2.h> diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 4b9032880959..06be2a1f2730 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -781,7 +781,7 @@ static int tcp_v6_do_calc_md5_hash(char *md5_hash, struct tcp_md5sig_key *key, sg_set_buf(&sg[block++], key->key, key->keylen); nbytes += key->keylen; - __sg_mark_end(&sg[block - 1]); + sg_mark_end(&sg[block - 1]); /* Now store the hash into the packet */ err = crypto_hash_init(desc); diff --git a/net/mac80211/aes_ccm.c b/net/mac80211/aes_ccm.c index bf7ba128b963..e62fe55944b8 100644 --- a/net/mac80211/aes_ccm.c +++ b/net/mac80211/aes_ccm.c @@ -11,7 +11,6 @@ #include <linux/types.h> #include <linux/crypto.h> #include <linux/err.h> -#include <asm/scatterlist.h> #include <net/mac80211.h> #include "ieee80211_key.h" diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index c387cf68a08c..e09a95aa68ff 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -702,7 +702,7 @@ static void rxkad_sg_set_buf2(struct scatterlist sg[2], nsg++; } - __sg_mark_end(&sg[nsg - 1]); + sg_mark_end(&sg[nsg - 1]); ASSERTCMP(sg[0].length + sg[1].length, ==, buflen); } diff --git a/net/sunrpc/auth_gss/gss_krb5_crypto.c b/net/sunrpc/auth_gss/gss_krb5_crypto.c index ab7cbd6575c4..0dd792338fa9 100644 --- a/net/sunrpc/auth_gss/gss_krb5_crypto.c +++ b/net/sunrpc/auth_gss/gss_krb5_crypto.c @@ -211,8 +211,8 @@ encryptor(struct scatterlist *sg, void *data) if (thislen == 0) return 0; - __sg_mark_end(&desc->infrags[desc->fragno - 1]); - __sg_mark_end(&desc->outfrags[desc->fragno - 1]); + sg_mark_end(&desc->infrags[desc->fragno - 1]); + sg_mark_end(&desc->outfrags[desc->fragno - 1]); ret = crypto_blkcipher_encrypt_iv(&desc->desc, desc->outfrags, desc->infrags, thislen); @@ -293,7 +293,7 @@ decryptor(struct scatterlist *sg, void *data) if (thislen == 0) return 0; - __sg_mark_end(&desc->frags[desc->fragno - 1]); + sg_mark_end(&desc->frags[desc->fragno - 1]); ret = crypto_blkcipher_decrypt_iv(&desc->desc, desc->frags, desc->frags, thislen); diff --git a/net/sunrpc/auth_gss/gss_krb5_seal.c b/net/sunrpc/auth_gss/gss_krb5_seal.c index a0d9faa59cb5..1c6eda5077c1 100644 --- a/net/sunrpc/auth_gss/gss_krb5_seal.c +++ b/net/sunrpc/auth_gss/gss_krb5_seal.c @@ -63,7 +63,6 @@ #include <linux/jiffies.h> #include <linux/sunrpc/gss_krb5.h> #include <linux/random.h> -#include <asm/scatterlist.h> #include <linux/crypto.h> #ifdef RPC_DEBUG diff --git a/net/sunrpc/auth_gss/gss_krb5_wrap.c b/net/sunrpc/auth_gss/gss_krb5_wrap.c index 8bd074df27d3..3bdc527ee64a 100644 --- a/net/sunrpc/auth_gss/gss_krb5_wrap.c +++ b/net/sunrpc/auth_gss/gss_krb5_wrap.c @@ -4,7 +4,6 @@ #include <linux/sunrpc/gss_krb5.h> #include <linux/random.h> #include <linux/pagemap.h> -#include <asm/scatterlist.h> #include <linux/crypto.h> #ifdef RPC_DEBUG diff --git a/net/xfrm/xfrm_algo.c b/net/xfrm/xfrm_algo.c index 0426388d351d..1686f64c4352 100644 --- a/net/xfrm/xfrm_algo.c +++ b/net/xfrm/xfrm_algo.c @@ -21,7 +21,6 @@ #if defined(CONFIG_INET_ESP) || defined(CONFIG_INET_ESP_MODULE) || defined(CONFIG_INET6_ESP) || defined(CONFIG_INET6_ESP_MODULE) #include <net/esp.h> #endif -#include <asm/scatterlist.h> /* * Algorithms supported by IPsec. These entries contain properties which |