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

new helper: msg_data_left()

convert open-coded instances

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

Al Viro 01e97e65 a2dd3793

+27 -23
+2 -2
crypto/algif_hash.c
··· 56 56 57 57 ctx->more = 0; 58 58 59 - while (iov_iter_count(&msg->msg_iter)) { 60 - int len = iov_iter_count(&msg->msg_iter); 59 + while (msg_data_left(msg)) { 60 + int len = msg_data_left(msg); 61 61 62 62 if (len > limit) 63 63 len = limit;
+2 -2
crypto/algif_skcipher.c
··· 641 641 long copied = 0; 642 642 643 643 lock_sock(sk); 644 - while (iov_iter_count(&msg->msg_iter)) { 644 + while (msg_data_left(msg)) { 645 645 sgl = list_first_entry(&ctx->tsgl, 646 646 struct skcipher_sg_list, list); 647 647 sg = sgl->sg; ··· 655 655 goto unlock; 656 656 } 657 657 658 - used = min_t(unsigned long, ctx->used, iov_iter_count(&msg->msg_iter)); 658 + used = min_t(unsigned long, ctx->used, msg_data_left(msg)); 659 659 660 660 used = af_alg_make_sg(&ctx->rsgl, &msg->msg_iter, used); 661 661 err = used;
+2 -2
drivers/vhost/net.c
··· 357 357 iov_iter_init(&msg.msg_iter, WRITE, vq->iov, out, len); 358 358 iov_iter_advance(&msg.msg_iter, hdr_size); 359 359 /* Sanity check */ 360 - if (!iov_iter_count(&msg.msg_iter)) { 360 + if (!msg_data_left(&msg)) { 361 361 vq_err(vq, "Unexpected header len for TX: " 362 362 "%zd expected %zd\n", 363 363 len, hdr_size); 364 364 break; 365 365 } 366 - len = iov_iter_count(&msg.msg_iter); 366 + len = msg_data_left(&msg); 367 367 368 368 zcopy_used = zcopy && len >= VHOST_GOODCOPY_LEN 369 369 && (nvq->upend_idx + 1) % UIO_MAXIOV !=
+5
include/linux/socket.h
··· 139 139 return __cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg); 140 140 } 141 141 142 + static inline size_t msg_data_left(struct msghdr *msg) 143 + { 144 + return iov_iter_count(&msg->msg_iter); 145 + } 146 + 142 147 /* "Socket"-level control message types: */ 143 148 144 149 #define SCM_RIGHTS 0x01 /* rw: access rights (array of int) */
+1 -1
net/core/datagram.c
··· 673 673 if (!chunk) 674 674 return 0; 675 675 676 - if (iov_iter_count(&msg->msg_iter) < chunk) { 676 + if (msg_data_left(msg) < chunk) { 677 677 if (__skb_checksum_complete(skb)) 678 678 goto csum_error; 679 679 if (skb_copy_datagram_msg(skb, hlen, msg, chunk))
+4 -4
net/ipv4/tcp.c
··· 1119 1119 1120 1120 sg = !!(sk->sk_route_caps & NETIF_F_SG); 1121 1121 1122 - while (iov_iter_count(&msg->msg_iter)) { 1122 + while (msg_data_left(msg)) { 1123 1123 int copy = 0; 1124 1124 int max = size_goal; 1125 1125 ··· 1163 1163 } 1164 1164 1165 1165 /* Try to append data to the end of skb. */ 1166 - if (copy > iov_iter_count(&msg->msg_iter)) 1167 - copy = iov_iter_count(&msg->msg_iter); 1166 + if (copy > msg_data_left(msg)) 1167 + copy = msg_data_left(msg); 1168 1168 1169 1169 /* Where to copy to? */ 1170 1170 if (skb_availroom(skb) > 0) { ··· 1221 1221 tcp_skb_pcount_set(skb, 0); 1222 1222 1223 1223 copied += copy; 1224 - if (!iov_iter_count(&msg->msg_iter)) { 1224 + if (!msg_data_left(msg)) { 1225 1225 tcp_tx_timestamp(sk, skb); 1226 1226 goto out; 1227 1227 }
+9 -10
net/rxrpc/ar-output.c
··· 564 564 max &= ~(call->conn->size_align - 1UL); 565 565 566 566 chunk = max; 567 - if (chunk > iov_iter_count(&msg->msg_iter) && !more) 568 - chunk = iov_iter_count(&msg->msg_iter); 567 + if (chunk > msg_data_left(msg) && !more) 568 + chunk = msg_data_left(msg); 569 569 570 570 space = chunk + call->conn->size_align; 571 571 space &= ~(call->conn->size_align - 1UL); ··· 608 608 sp = rxrpc_skb(skb); 609 609 610 610 /* append next segment of data to the current buffer */ 611 - if (iov_iter_count(&msg->msg_iter) > 0) { 611 + if (msg_data_left(msg) > 0) { 612 612 int copy = skb_tailroom(skb); 613 613 ASSERTCMP(copy, >, 0); 614 - if (copy > iov_iter_count(&msg->msg_iter)) 615 - copy = iov_iter_count(&msg->msg_iter); 614 + if (copy > msg_data_left(msg)) 615 + copy = msg_data_left(msg); 616 616 if (copy > sp->remain) 617 617 copy = sp->remain; 618 618 ··· 633 633 634 634 /* add the packet to the send queue if it's now full */ 635 635 if (sp->remain <= 0 || 636 - (iov_iter_count(&msg->msg_iter) == 0 && !more)) { 636 + (msg_data_left(msg) == 0 && !more)) { 637 637 struct rxrpc_connection *conn = call->conn; 638 638 uint32_t seq; 639 639 size_t pad; ··· 663 663 sp->hdr.serviceId = conn->service_id; 664 664 665 665 sp->hdr.flags = conn->out_clientflag; 666 - if (iov_iter_count(&msg->msg_iter) == 0 && !more) 666 + if (msg_data_left(msg) == 0 && !more) 667 667 sp->hdr.flags |= RXRPC_LAST_PACKET; 668 668 else if (CIRC_SPACE(call->acks_head, call->acks_tail, 669 669 call->acks_winsz) > 1) ··· 679 679 680 680 memcpy(skb->head, &sp->hdr, 681 681 sizeof(struct rxrpc_header)); 682 - rxrpc_queue_packet(call, skb, 683 - iov_iter_count(&msg->msg_iter) == 0 && !more); 682 + rxrpc_queue_packet(call, skb, !msg_data_left(msg) && !more); 684 683 skb = NULL; 685 684 } 686 - } while (iov_iter_count(&msg->msg_iter) > 0); 685 + } while (msg_data_left(msg) > 0); 687 686 688 687 success: 689 688 ret = copied;
+2 -2
net/socket.c
··· 612 612 613 613 static inline int sock_sendmsg_nosec(struct socket *sock, struct msghdr *msg) 614 614 { 615 - int ret = sock->ops->sendmsg(sock, msg, iov_iter_count(&msg->msg_iter)); 615 + int ret = sock->ops->sendmsg(sock, msg, msg_data_left(msg)); 616 616 BUG_ON(ret == -EIOCBQUEUED); 617 617 return ret; 618 618 } ··· 620 620 int sock_sendmsg(struct socket *sock, struct msghdr *msg) 621 621 { 622 622 int err = security_socket_sendmsg(sock, msg, 623 - iov_iter_count(&msg->msg_iter)); 623 + msg_data_left(msg)); 624 624 625 625 return err ?: sock_sendmsg_nosec(sock, msg); 626 626 }