Some parts of the iovec API were replaced by the similar message API. Refactoring the code to use that. diff -rupN vsock-only/linux/af_vsock.c vsock-only.new/linux/af_vsock.c --- vsock-only/linux/af_vsock.c 2015-05-05 11:31:35.710099711 -0400 +++ vsock-only.new/linux/af_vsock.c 2015-05-05 11:36:33.260115840 -0400 @@ -4727,7 +4727,11 @@ VSockVmciDgramRecvmsg(struct kiocb *kioc } /* Place the datagram payload in the user's iovec. */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) err = skb_copy_datagram_iovec(skb, sizeof *dg, msg->msg_iov, payloadLen); +#else + err = skb_copy_datagram_iter(skb, sizeof *dg, &msg->msg_iter, payloadLen); +#endif if (err) { goto out; }