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

vmci_transport: switch ->enqeue_dgram, ->enqueue_stream and ->dequeue_stream to msghdr

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

Al Viro 0f7db23a 45dcc687

+13 -13
+3 -3
include/net/af_vsock.h
··· 103 103 int (*dgram_dequeue)(struct kiocb *kiocb, struct vsock_sock *vsk, 104 104 struct msghdr *msg, size_t len, int flags); 105 105 int (*dgram_enqueue)(struct vsock_sock *, struct sockaddr_vm *, 106 - struct iovec *, size_t len); 106 + struct msghdr *, size_t len); 107 107 bool (*dgram_allow)(u32 cid, u32 port); 108 108 109 109 /* STREAM. */ 110 110 /* TODO: stream_bind() */ 111 - ssize_t (*stream_dequeue)(struct vsock_sock *, struct iovec *, 111 + ssize_t (*stream_dequeue)(struct vsock_sock *, struct msghdr *, 112 112 size_t len, int flags); 113 - ssize_t (*stream_enqueue)(struct vsock_sock *, struct iovec *, 113 + ssize_t (*stream_enqueue)(struct vsock_sock *, struct msghdr *, 114 114 size_t len); 115 115 s64 (*stream_has_data)(struct vsock_sock *); 116 116 s64 (*stream_has_space)(struct vsock_sock *);
+3 -3
net/vmw_vsock/af_vsock.c
··· 1013 1013 goto out; 1014 1014 } 1015 1015 1016 - err = transport->dgram_enqueue(vsk, remote_addr, msg->msg_iov, len); 1016 + err = transport->dgram_enqueue(vsk, remote_addr, msg, len); 1017 1017 1018 1018 out: 1019 1019 release_sock(sk); ··· 1617 1617 */ 1618 1618 1619 1619 written = transport->stream_enqueue( 1620 - vsk, msg->msg_iov, 1620 + vsk, msg, 1621 1621 len - total_written); 1622 1622 if (written < 0) { 1623 1623 err = -ENOMEM; ··· 1739 1739 break; 1740 1740 1741 1741 read = transport->stream_dequeue( 1742 - vsk, msg->msg_iov, 1742 + vsk, msg, 1743 1743 len - copied, flags); 1744 1744 if (read < 0) { 1745 1745 err = -ENOMEM;
+7 -7
net/vmw_vsock/vmci_transport.c
··· 1697 1697 static int vmci_transport_dgram_enqueue( 1698 1698 struct vsock_sock *vsk, 1699 1699 struct sockaddr_vm *remote_addr, 1700 - struct iovec *iov, 1700 + struct msghdr *msg, 1701 1701 size_t len) 1702 1702 { 1703 1703 int err; ··· 1714 1714 if (!dg) 1715 1715 return -ENOMEM; 1716 1716 1717 - memcpy_fromiovec(VMCI_DG_PAYLOAD(dg), iov, len); 1717 + memcpy_from_msg(VMCI_DG_PAYLOAD(dg), msg, len); 1718 1718 1719 1719 dg->dst = vmci_make_handle(remote_addr->svm_cid, 1720 1720 remote_addr->svm_port); ··· 1835 1835 1836 1836 static ssize_t vmci_transport_stream_dequeue( 1837 1837 struct vsock_sock *vsk, 1838 - struct iovec *iov, 1838 + struct msghdr *msg, 1839 1839 size_t len, 1840 1840 int flags) 1841 1841 { 1842 1842 if (flags & MSG_PEEK) 1843 - return vmci_qpair_peekv(vmci_trans(vsk)->qpair, iov, len, 0); 1843 + return vmci_qpair_peekv(vmci_trans(vsk)->qpair, msg->msg_iov, len, 0); 1844 1844 else 1845 - return vmci_qpair_dequev(vmci_trans(vsk)->qpair, iov, len, 0); 1845 + return vmci_qpair_dequev(vmci_trans(vsk)->qpair, msg->msg_iov, len, 0); 1846 1846 } 1847 1847 1848 1848 static ssize_t vmci_transport_stream_enqueue( 1849 1849 struct vsock_sock *vsk, 1850 - struct iovec *iov, 1850 + struct msghdr *msg, 1851 1851 size_t len) 1852 1852 { 1853 - return vmci_qpair_enquev(vmci_trans(vsk)->qpair, iov, len, 0); 1853 + return vmci_qpair_enquev(vmci_trans(vsk)->qpair, msg->msg_iov, len, 0); 1854 1854 } 1855 1855 1856 1856 static s64 vmci_transport_stream_has_data(struct vsock_sock *vsk)