diff options
| author | Rusty Russell <rusty@rustcorp.com.au> | 2013-05-16 19:35:21 -0400 |
|---|---|---|
| committer | Rusty Russell <rusty@rustcorp.com.au> | 2013-05-19 20:54:22 -0400 |
| commit | d2f83e9078b8114e3b9d09082856c1aac299aa37 (patch) | |
| tree | 707f0d810d28e000eb3f9a775be880687dde1030 /include/linux | |
| parent | d5fe85af85367d5892e4308f596de4e2a5fb9017 (diff) | |
Hoist memcpy_fromiovec/memcpy_toiovec into lib/
ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined!
That function is only present with CONFIG_NET. Turns out that
crypto/algif_skcipher.c also uses that outside net, but it actually
needs sockets anyway.
In addition, commit 6d4f0139d642c45411a47879325891ce2a7c164a added
CONFIG_NET dependency to CONFIG_VMCI for memcpy_toiovec, so hoist
that function and revert that commit too.
socket.h already includes uio.h, so no callers need updating; trying
only broke things fo x86_64 randconfig (thanks Fengguang!).
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/socket.h | 2 | ||||
| -rw-r--r-- | include/linux/uio.h | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/include/linux/socket.h b/include/linux/socket.h index 428c37a1f95c..33bf2dfab19d 100644 --- a/include/linux/socket.h +++ b/include/linux/socket.h | |||
| @@ -305,7 +305,6 @@ struct ucred { | |||
| 305 | 305 | ||
| 306 | extern void cred_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred); | 306 | extern void cred_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred); |
| 307 | 307 | ||
| 308 | extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); | ||
| 309 | extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov, | 308 | extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov, |
| 310 | int offset, int len); | 309 | int offset, int len); |
| 311 | extern int csum_partial_copy_fromiovecend(unsigned char *kdata, | 310 | extern int csum_partial_copy_fromiovecend(unsigned char *kdata, |
| @@ -314,7 +313,6 @@ extern int csum_partial_copy_fromiovecend(unsigned char *kdata, | |||
| 314 | unsigned int len, __wsum *csump); | 313 | unsigned int len, __wsum *csump); |
| 315 | 314 | ||
| 316 | extern int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr_storage *address, int mode); | 315 | extern int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr_storage *address, int mode); |
| 317 | extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len); | ||
| 318 | extern int memcpy_toiovecend(const struct iovec *v, unsigned char *kdata, | 316 | extern int memcpy_toiovecend(const struct iovec *v, unsigned char *kdata, |
| 319 | int offset, int len); | 317 | int offset, int len); |
| 320 | extern int move_addr_to_kernel(void __user *uaddr, int ulen, struct sockaddr_storage *kaddr); | 318 | extern int move_addr_to_kernel(void __user *uaddr, int ulen, struct sockaddr_storage *kaddr); |
diff --git a/include/linux/uio.h b/include/linux/uio.h index 629aaf51f30b..c55ce243cc09 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h | |||
| @@ -35,4 +35,7 @@ static inline size_t iov_length(const struct iovec *iov, unsigned long nr_segs) | |||
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to); | 37 | unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to); |
| 38 | |||
| 39 | int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); | ||
| 40 | int memcpy_toiovec(struct iovec *iov, unsigned char *kdata, int len); | ||
| 38 | #endif | 41 | #endif |
