Commit 45dcc687f764f89e1e7c41dace52b105494e5dbb
1 parent
562640f3c3
tipc_msg_build(): pass msghdr instead of its ->msg_iov
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Showing 3 changed files with 8 additions and 9 deletions Side-by-side Diff
net/tipc/msg.c
... | ... | @@ -162,14 +162,14 @@ |
162 | 162 | /** |
163 | 163 | * tipc_msg_build - create buffer chain containing specified header and data |
164 | 164 | * @mhdr: Message header, to be prepended to data |
165 | - * @iov: User data | |
165 | + * @m: User message | |
166 | 166 | * @offset: Posision in iov to start copying from |
167 | 167 | * @dsz: Total length of user data |
168 | 168 | * @pktmax: Max packet size that can be used |
169 | 169 | * @chain: Buffer or chain of buffers to be returned to caller |
170 | 170 | * Returns message data size or errno: -ENOMEM, -EFAULT |
171 | 171 | */ |
172 | -int tipc_msg_build(struct tipc_msg *mhdr, struct iovec const *iov, | |
172 | +int tipc_msg_build(struct tipc_msg *mhdr, struct msghdr *m, | |
173 | 173 | int offset, int dsz, int pktmax , struct sk_buff **chain) |
174 | 174 | { |
175 | 175 | int mhsz = msg_hdr_sz(mhdr); |
... | ... | @@ -194,7 +194,7 @@ |
194 | 194 | skb_copy_to_linear_data(buf, mhdr, mhsz); |
195 | 195 | pktpos = buf->data + mhsz; |
196 | 196 | TIPC_SKB_CB(buf)->chain_sz = 1; |
197 | - if (!dsz || !memcpy_fromiovecend(pktpos, iov, offset, dsz)) | |
197 | + if (!dsz || !memcpy_fromiovecend(pktpos, m->msg_iov, offset, dsz)) | |
198 | 198 | return dsz; |
199 | 199 | rc = -EFAULT; |
200 | 200 | goto error; |
... | ... | @@ -223,7 +223,7 @@ |
223 | 223 | if (drem < pktrem) |
224 | 224 | pktrem = drem; |
225 | 225 | |
226 | - if (memcpy_fromiovecend(pktpos, iov, offset, pktrem)) { | |
226 | + if (memcpy_fromiovecend(pktpos, m->msg_iov, offset, pktrem)) { | |
227 | 227 | rc = -EFAULT; |
228 | 228 | goto error; |
229 | 229 | } |
net/tipc/msg.h
... | ... | @@ -743,7 +743,7 @@ |
743 | 743 | |
744 | 744 | bool tipc_msg_make_bundle(struct sk_buff **buf, u32 mtu, u32 dnode); |
745 | 745 | |
746 | -int tipc_msg_build(struct tipc_msg *mhdr, struct iovec const *iov, | |
746 | +int tipc_msg_build(struct tipc_msg *mhdr, struct msghdr *m, | |
747 | 747 | int offset, int dsz, int mtu , struct sk_buff **chain); |
748 | 748 | |
749 | 749 | struct sk_buff *tipc_msg_reassemble(struct sk_buff *chain); |
net/tipc/socket.c
... | ... | @@ -727,7 +727,7 @@ |
727 | 727 | |
728 | 728 | new_mtu: |
729 | 729 | mtu = tipc_bclink_get_mtu(); |
730 | - rc = tipc_msg_build(mhdr, msg->msg_iov, 0, dsz, mtu, &buf); | |
730 | + rc = tipc_msg_build(mhdr, msg, 0, dsz, mtu, &buf); | |
731 | 731 | if (unlikely(rc < 0)) |
732 | 732 | return rc; |
733 | 733 | |
... | ... | @@ -905,7 +905,6 @@ |
905 | 905 | struct sock *sk = sock->sk; |
906 | 906 | struct tipc_sock *tsk = tipc_sk(sk); |
907 | 907 | struct tipc_msg *mhdr = &tsk->phdr; |
908 | - struct iovec *iov = m->msg_iov; | |
909 | 908 | u32 dnode, dport; |
910 | 909 | struct sk_buff *buf; |
911 | 910 | struct tipc_name_seq *seq = &dest->addr.nameseq; |
... | ... | @@ -982,7 +981,7 @@ |
982 | 981 | |
983 | 982 | new_mtu: |
984 | 983 | mtu = tipc_node_get_mtu(dnode, tsk->ref); |
985 | - rc = tipc_msg_build(mhdr, iov, 0, dsz, mtu, &buf); | |
984 | + rc = tipc_msg_build(mhdr, m, 0, dsz, mtu, &buf); | |
986 | 985 | if (rc < 0) |
987 | 986 | goto exit; |
988 | 987 | |
... | ... | @@ -1094,7 +1093,7 @@ |
1094 | 1093 | next: |
1095 | 1094 | mtu = tsk->max_pkt; |
1096 | 1095 | send = min_t(uint, dsz - sent, TIPC_MAX_USER_MSG_SIZE); |
1097 | - rc = tipc_msg_build(mhdr, m->msg_iov, sent, send, mtu, &buf); | |
1096 | + rc = tipc_msg_build(mhdr, m, sent, send, mtu, &buf); | |
1098 | 1097 | if (unlikely(rc < 0)) |
1099 | 1098 | goto exit; |
1100 | 1099 | do { |