switch ipxrtr_route_packet() from iovec to msghdr
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
6ce8e9ce59
commit
e169371823
@ -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,
|
|||||||
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)
|
|||||||
* 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,
|
|||||||
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;
|
||||||
|
Loading…
Reference in New Issue
Block a user