switch ipxrtr_route_packet() from iovec to msghdr
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 7 Apr 2014 01:28:01 +0000 (21:28 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 24 Nov 2014 09:28:49 +0000 (04:28 -0500)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
include/net/ipx.h
net/ipx/af_ipx.c
net/ipx/ipx_route.c

index 320f47b..e5cff68 100644 (file)
@@ -150,7 +150,7 @@ int ipxrtr_add_route(__be32 network, struct ipx_interface *intrfc,
                     unsigned char *node);
 void ipxrtr_del_routes(struct ipx_interface *intrfc);
 int ipxrtr_route_packet(struct sock *sk, struct sockaddr_ipx *usipx,
-                       struct iovec *iov, size_t len, int noblock);
+                       struct msghdr *msg, size_t len, int noblock);
 int ipxrtr_route_skb(struct sk_buff *skb);
 struct ipx_route *ipxrtr_lookup(__be32 net);
 int ipxrtr_ioctl(unsigned int cmd, void __user *arg);
index 97dc432..f11ad1d 100644 (file)
@@ -1745,8 +1745,7 @@ static int ipx_sendmsg(struct kiocb *iocb, struct socket *sock,
                memcpy(usipx->sipx_node, ipxs->dest_addr.node, IPX_NODE_LEN);
        }
 
-       rc = ipxrtr_route_packet(sk, usipx, msg->msg_iov, len,
-                                flags & MSG_DONTWAIT);
+       rc = ipxrtr_route_packet(sk, usipx, msg, len, flags & MSG_DONTWAIT);
        if (rc >= 0)
                rc = len;
 out:
index 67e7ad3..3e2a32a 100644 (file)
@@ -165,7 +165,7 @@ int ipxrtr_route_skb(struct sk_buff *skb)
  * Route an outgoing frame from a socket.
  */
 int ipxrtr_route_packet(struct sock *sk, struct sockaddr_ipx *usipx,
-                       struct iovec *iov, size_t len, int noblock)
+                       struct msghdr *msg, size_t len, int noblock)
 {
        struct sk_buff *skb;
        struct ipx_sock *ipxs = ipx_sk(sk);
@@ -229,7 +229,7 @@ int ipxrtr_route_packet(struct sock *sk, struct sockaddr_ipx *usipx,
        memcpy(ipx->ipx_dest.node, usipx->sipx_node, IPX_NODE_LEN);
        ipx->ipx_dest.sock              = usipx->sipx_port;
 
-       rc = memcpy_fromiovec(skb_put(skb, len), iov, len);
+       rc = memcpy_from_msg(skb_put(skb, len), msg, len);
        if (rc) {
                kfree_skb(skb);
                goto out_put;