aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorAlexander Viro <viro@www.linux.org.uk>2004-07-15 22:05:19 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-07-15 22:05:19 -0700
commitb146166e1d6e82f226ba1679962837603b44e1ed (patch)
treec599107aae4be4fbb98dd5f831de40632e3164f9 /net
parentb145333f8f6d2513baf9ffcd52552db7ecb7f97d (diff)
downloadhistory-b146166e1d6e82f226ba1679962837603b44e1ed.tar.gz
[PATCH] sparse: iovec cleanups - the rest
the rest of iovec cleanups: nbd, dvb-net, sock.c::sock_no_sendpage(), econet over udp and ip_vs switched to use of kvec and kernel_...msg().
Diffstat (limited to 'net')
-rw-r--r--net/core/sock.c28
-rw-r--r--net/econet/af_econet.c32
-rw-r--r--net/ipv4/ipvs/ip_vs_sync.c36
3 files changed, 21 insertions, 75 deletions
diff --git a/net/core/sock.c b/net/core/sock.c
index 724b6978d38e34..f8688edc720148 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -1065,30 +1065,12 @@ int sock_no_mmap(struct file *file, struct socket *sock, struct vm_area_struct *
ssize_t sock_no_sendpage(struct socket *sock, struct page *page, int offset, size_t size, int flags)
{
ssize_t res;
- struct msghdr msg;
- struct iovec iov;
- mm_segment_t old_fs;
- char *kaddr;
-
- kaddr = kmap(page);
-
- msg.msg_name = NULL;
- msg.msg_namelen = 0;
- msg.msg_iov = &iov;
- msg.msg_iovlen = 1;
- msg.msg_control = NULL;
- msg.msg_controllen = 0;
- msg.msg_flags = flags;
-
- /* This cast is ok because of the "set_fs(KERNEL_DS)" */
- iov.iov_base = (void __user *) (kaddr + offset);
+ struct msghdr msg = {.msg_flags = flags};
+ struct kvec iov;
+ char *kaddr = kmap(page);
+ iov.iov_base = kaddr + offset;
iov.iov_len = size;
-
- old_fs = get_fs();
- set_fs(KERNEL_DS);
- res = sock_sendmsg(sock, &msg, size);
- set_fs(old_fs);
-
+ res = kernel_sendmsg(sock, &msg, &iov, 1, size);
kunmap(page);
return res;
}
diff --git a/net/econet/af_econet.c b/net/econet/af_econet.c
index 4c9d71fd3148a6..07b4cff2f44d30 100644
--- a/net/econet/af_econet.c
+++ b/net/econet/af_econet.c
@@ -774,38 +774,22 @@ static int ec_queue_packet(struct sock *sk, struct sk_buff *skb,
static void aun_send_response(__u32 addr, unsigned long seq, int code, int cb)
{
- struct sockaddr_in sin;
- struct iovec iov;
- struct aunhdr ah;
+ struct sockaddr_in sin = {
+ .sin_family = AF_INET,
+ .sin_port = htons(AUN_PORT),
+ .sin_addr = {.s_addr = addr}
+ };
+ struct aunhdr ah = {.code = code, .cb = cb, .handle = seq};
+ struct kvec iov = {.iov_base = (void *)&ah, .iov_len = sizeof(ah)};
struct msghdr udpmsg;
- int err;
- mm_segment_t oldfs;
- memset(&sin, 0, sizeof(sin));
- sin.sin_family = AF_INET;
- sin.sin_port = htons(AUN_PORT);
- sin.sin_addr.s_addr = addr;
-
- ah.code = code;
- ah.pad = 0;
- ah.port = 0;
- ah.cb = cb;
- ah.handle = seq;
-
- iov.iov_base = (void *)&ah;
- iov.iov_len = sizeof(ah);
-
udpmsg.msg_name = (void *)&sin;
udpmsg.msg_namelen = sizeof(sin);
- udpmsg.msg_iov = &iov;
- udpmsg.msg_iovlen = 1;
udpmsg.msg_control = NULL;
udpmsg.msg_controllen = 0;
udpmsg.msg_flags=0;
- oldfs = get_fs(); set_fs(KERNEL_DS);
- err = sock_sendmsg(udpsock, &udpmsg, sizeof(ah));
- set_fs(oldfs);
+ kernel_sendmsg(udpsock, &udpmsg, &iov, 1, sizeof(ah));
}
diff --git a/net/ipv4/ipvs/ip_vs_sync.c b/net/ipv4/ipvs/ip_vs_sync.c
index e7f3f28a70a50b..80fdab71e20cf4 100644
--- a/net/ipv4/ipvs/ip_vs_sync.c
+++ b/net/ipv4/ipvs/ip_vs_sync.c
@@ -555,25 +555,15 @@ static struct socket * make_receive_sock(void)
static int
ip_vs_send_async(struct socket *sock, const char *buffer, const size_t length)
{
- struct msghdr msg;
- mm_segment_t oldfs;
- struct iovec iov;
+ struct msghdr msg = {.msg_flags = MSG_DONTWAIT|MSG_NOSIGNAL};
+ struct kvec iov;
int len;
EnterFunction(7);
iov.iov_base = (void *)buffer;
iov.iov_len = length;
- msg.msg_name = 0;
- msg.msg_namelen = 0;
- msg.msg_iov = &iov;
- msg.msg_iovlen = 1;
- msg.msg_control = NULL;
- msg.msg_controllen = 0;
- msg.msg_flags = MSG_DONTWAIT|MSG_NOSIGNAL;
-
- oldfs = get_fs(); set_fs(KERNEL_DS);
- len = sock_sendmsg(sock, &msg, (size_t)(length));
- set_fs(oldfs);
+
+ len = kernel_sendmsg(sock, &msg, &iov, 1, (size_t)(length));
LeaveFunction(7);
return len;
@@ -583,27 +573,17 @@ ip_vs_send_async(struct socket *sock, const char *buffer, const size_t length)
static int
ip_vs_receive(struct socket *sock, char *buffer, const size_t buflen)
{
- struct msghdr msg;
- struct iovec iov;
+ struct msghdr msg = {NULL,};
+ struct kvec iov;
int len;
- mm_segment_t oldfs;
EnterFunction(7);
/* Receive a packet */
iov.iov_base = buffer;
iov.iov_len = (size_t)buflen;
- msg.msg_name = NULL;
- msg.msg_namelen = 0;
- msg.msg_iov = &iov;
- msg.msg_iovlen = 1;
- msg.msg_control = NULL;
- msg.msg_controllen = 0;
- msg.msg_flags = 0;
-
- oldfs = get_fs(); set_fs(KERNEL_DS);
- len = sock_recvmsg(sock, &msg, buflen, 0);
- set_fs(oldfs);
+
+ len = kernel_recvmsg(sock, &msg, &iov, 1, buflen, 0);
if (len < 0)
return -1;