Commit e1693718 authored by Al Viro's avatar Al Viro

switch ipxrtr_route_packet() from iovec to msghdr

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 6ce8e9ce
...@@ -150,7 +150,7 @@ int ipxrtr_add_route(__be32 network, struct ipx_interface *intrfc, ...@@ -150,7 +150,7 @@ int ipxrtr_add_route(__be32 network, struct ipx_interface *intrfc,
unsigned char *node); unsigned char *node);
void ipxrtr_del_routes(struct ipx_interface *intrfc); void ipxrtr_del_routes(struct ipx_interface *intrfc);
int ipxrtr_route_packet(struct sock *sk, struct sockaddr_ipx *usipx, 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); int ipxrtr_route_skb(struct sk_buff *skb);
struct ipx_route *ipxrtr_lookup(__be32 net); struct ipx_route *ipxrtr_lookup(__be32 net);
int ipxrtr_ioctl(unsigned int cmd, void __user *arg); int ipxrtr_ioctl(unsigned int cmd, void __user *arg);
......
...@@ -1745,8 +1745,7 @@ static int ipx_sendmsg(struct kiocb *iocb, struct socket *sock, ...@@ -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); memcpy(usipx->sipx_node, ipxs->dest_addr.node, IPX_NODE_LEN);
} }
rc = ipxrtr_route_packet(sk, usipx, msg->msg_iov, len, rc = ipxrtr_route_packet(sk, usipx, msg, len, flags & MSG_DONTWAIT);
flags & MSG_DONTWAIT);
if (rc >= 0) if (rc >= 0)
rc = len; rc = len;
out: out:
......
...@@ -165,7 +165,7 @@ int ipxrtr_route_skb(struct sk_buff *skb) ...@@ -165,7 +165,7 @@ int ipxrtr_route_skb(struct sk_buff *skb)
* Route an outgoing frame from a socket. * Route an outgoing frame from a socket.
*/ */
int ipxrtr_route_packet(struct sock *sk, struct sockaddr_ipx *usipx, 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 sk_buff *skb;
struct ipx_sock *ipxs = ipx_sk(sk); struct ipx_sock *ipxs = ipx_sk(sk);
...@@ -229,7 +229,7 @@ int ipxrtr_route_packet(struct sock *sk, struct sockaddr_ipx *usipx, ...@@ -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); memcpy(ipx->ipx_dest.node, usipx->sipx_node, IPX_NODE_LEN);
ipx->ipx_dest.sock = usipx->sipx_port; 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) { if (rc) {
kfree_skb(skb); kfree_skb(skb);
goto out_put; goto out_put;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment