Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tipc_msg_build(): pass msghdr instead of its ->msg_iov

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro 45dcc687 562640f3

+8 -9
+4 -4
net/tipc/msg.c
··· 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 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 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 }
+1 -1
net/tipc/msg.h
··· 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);
+3 -4
net/tipc/socket.c
··· 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 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; ··· 981 982 982 983 new_mtu: 983 984 mtu = tipc_node_get_mtu(dnode, tsk->ref); 984 - rc = tipc_msg_build(mhdr, iov, 0, dsz, mtu, &buf); 985 + rc = tipc_msg_build(mhdr, m, 0, dsz, mtu, &buf); 985 986 if (rc < 0) 986 987 goto exit; 987 988 ··· 1093 1094 next: 1094 1095 mtu = tsk->max_pkt; 1095 1096 send = min_t(uint, dsz - sent, TIPC_MAX_USER_MSG_SIZE); 1096 - rc = tipc_msg_build(mhdr, m->msg_iov, sent, send, mtu, &buf); 1097 + rc = tipc_msg_build(mhdr, m, sent, send, mtu, &buf); 1097 1098 if (unlikely(rc < 0)) 1098 1099 goto exit; 1099 1100 do {