瀏覽代碼

ipv6: rawv6_send_hdrinc(): pass msghdr

Switch from passing msg->iov_iter.iov to passing msg itself

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 11 年之前
父節點
當前提交
c3c1a7dbe2
共有 1 個文件被更改,包括 3 次插入4 次删除
  1. 3 4
      net/ipv6/raw.c

+ 3 - 4
net/ipv6/raw.c

@@ -609,7 +609,7 @@ out:
 	return err;
 	return err;
 }
 }
 
 
-static int rawv6_send_hdrinc(struct sock *sk, void *from, int length,
+static int rawv6_send_hdrinc(struct sock *sk, struct msghdr *msg, int length,
 			struct flowi6 *fl6, struct dst_entry **dstp,
 			struct flowi6 *fl6, struct dst_entry **dstp,
 			unsigned int flags)
 			unsigned int flags)
 {
 {
@@ -648,7 +648,7 @@ static int rawv6_send_hdrinc(struct sock *sk, void *from, int length,
 	skb->ip_summed = CHECKSUM_NONE;
 	skb->ip_summed = CHECKSUM_NONE;
 
 
 	skb->transport_header = skb->network_header;
 	skb->transport_header = skb->network_header;
-	err = memcpy_fromiovecend((void *)iph, from, 0, length);
+	err = memcpy_fromiovecend((void *)iph, msg->msg_iter.iov, 0, length);
 	if (err)
 	if (err)
 		goto error_fault;
 		goto error_fault;
 
 
@@ -886,8 +886,7 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk,
 
 
 back_from_confirm:
 back_from_confirm:
 	if (inet->hdrincl)
 	if (inet->hdrincl)
-		/* XXX: stripping const */
-		err = rawv6_send_hdrinc(sk, (struct iovec *)msg->msg_iter.iov, len, &fl6, &dst, msg->msg_flags);
+		err = rawv6_send_hdrinc(sk, msg, len, &fl6, &dst, msg->msg_flags);
 	else {
 	else {
 		lock_sock(sk);
 		lock_sock(sk);
 		err = ip6_append_data(sk, raw6_getfrag, &rfv,
 		err = ip6_append_data(sk, raw6_getfrag, &rfv,