*/
        if (ublk_need_map_req(req)) {
                struct iov_iter iter;
-               struct iovec iov;
                const int dir = ITER_DEST;
 
                import_single_range(dir, u64_to_user_ptr(io->addr), rq_bytes,
-                               &iov, &iter);
+                                       &iter);
 
                return ublk_copy_user_pages(req, 0, &iter, dir);
        }
 
        if (ublk_need_unmap_req(req)) {
                struct iov_iter iter;
-               struct iovec iov;
                const int dir = ITER_SOURCE;
 
                WARN_ON_ONCE(io->res > rq_bytes);
 
                import_single_range(dir, u64_to_user_ptr(io->addr), io->res,
-                               &iov, &iter);
+                                       &iter);
                return ublk_copy_user_pages(req, 0, &iter, dir);
        }
        return rq_bytes;
 
 SYSCALL_DEFINE3(getrandom, char __user *, ubuf, size_t, len, unsigned int, flags)
 {
        struct iov_iter iter;
-       struct iovec iov;
        int ret;
 
        if (flags & ~(GRND_NONBLOCK | GRND_RANDOM | GRND_INSECURE))
                        return ret;
        }
 
-       ret = import_single_range(ITER_DEST, ubuf, len, &iov, &iter);
+       ret = import_single_range(ITER_DEST, ubuf, len, &iter);
        if (unlikely(ret))
                return ret;
        return get_random_bytes_user(&iter);
                return 0;
        case RNDADDENTROPY: {
                struct iov_iter iter;
-               struct iovec iov;
                ssize_t ret;
                int len;
 
                        return -EINVAL;
                if (get_user(len, p++))
                        return -EFAULT;
-               ret = import_single_range(ITER_SOURCE, p, len, &iov, &iter);
+               ret = import_single_range(ITER_SOURCE, p, len, &iter);
                if (unlikely(ret))
                        return ret;
                ret = write_pool_user(&iter);
 
        size_t len = iocb->aio_nbytes;
 
        if (!vectored) {
-               ssize_t ret = import_single_range(rw, buf, len, *iovec, iter);
+               ssize_t ret = import_single_range(rw, buf, len, iter);
                *iovec = NULL;
                return ret;
        }
 
                 unsigned nr_segs, unsigned fast_segs, struct iovec **iovp,
                 struct iov_iter *i, bool compat);
 int import_single_range(int type, void __user *buf, size_t len,
-                struct iovec *iov, struct iov_iter *i);
+                struct iov_iter *i);
 int import_ubuf(int type, void __user *buf, size_t len, struct iov_iter *i);
 
 static inline void iov_iter_ubuf(struct iov_iter *i, unsigned int direction,
 
 static ssize_t user_events_write(struct file *file, const char __user *ubuf,
                                 size_t count, loff_t *ppos)
 {
-       struct iovec iov;
        struct iov_iter i;
 
        if (unlikely(*ppos != 0))
                return -EFAULT;
 
        if (unlikely(import_single_range(ITER_SOURCE, (char __user *)ubuf,
-                                        count, &iov, &i)))
+                                        count, &i)))
                return -EFAULT;
 
        return user_events_write_core(file, &i);
 
 EXPORT_SYMBOL(import_iovec);
 
 int import_single_range(int rw, void __user *buf, size_t len,
-                struct iovec *iov, struct iov_iter *i)
+                       struct iov_iter *i)
 {
        if (len > MAX_RW_COUNT)
                len = MAX_RW_COUNT;
 
 {
        unsigned long copy_address = (unsigned long)zc->copybuf_address;
        struct msghdr msg = {};
-       struct iovec iov;
        int err;
 
        zc->length = 0;
                return -EINVAL;
 
        err = import_single_range(ITER_DEST, (void __user *)copy_address,
-                                 inq, &iov, &msg.msg_iter);
+                                 inq, &msg.msg_iter);
        if (err)
                return err;
 
 {
        unsigned long copy_address = (unsigned long)zc->copybuf_address;
        struct msghdr msg = {};
-       struct iovec iov;
        int err;
 
        if (copy_address != zc->copybuf_address)
                return -EINVAL;
 
        err = import_single_range(ITER_DEST, (void __user *)copy_address,
-                                 copylen, &iov, &msg.msg_iter);
+                                 copylen, &msg.msg_iter);
        if (err)
                return err;
        err = skb_copy_datagram_msg(skb, *offset, &msg, copylen);
 
        struct sockaddr_storage address;
        int err;
        struct msghdr msg;
-       struct iovec iov;
        int fput_needed;
 
-       err = import_single_range(ITER_SOURCE, buff, len, &iov, &msg.msg_iter);
+       err = import_single_range(ITER_SOURCE, buff, len, &msg.msg_iter);
        if (unlikely(err))
                return err;
        sock = sockfd_lookup_light(fd, &err, &fput_needed);
                .msg_name = addr ? (struct sockaddr *)&address : NULL,
        };
        struct socket *sock;
-       struct iovec iov;
        int err, err2;
        int fput_needed;
 
-       err = import_single_range(ITER_DEST, ubuf, size, &iov, &msg.msg_iter);
+       err = import_single_range(ITER_DEST, ubuf, size, &msg.msg_iter);
        if (unlikely(err))
                return err;
        sock = sockfd_lookup_light(fd, &err, &fput_needed);
 
                            key_serial_t ringid)
 {
        if (_payload && plen) {
-               struct iovec iov;
                struct iov_iter from;
                int ret;
 
                ret = import_single_range(ITER_SOURCE, (void __user *)_payload, plen,
-                                         &iov, &from);
+                                         &from);
                if (unlikely(ret))
                        return ret;