On Sun, May 22, 2022 at 07:02:01AM -0600, Jens Axboe wrote: > +static void iter_uaddr_advance(struct iov_iter *i, size_t size) > +{ > +} How could that possibly work? At the very least you want to do what xarray does - you *must* decrement ->count and shift ->iov_offset. Matter of fact, I'd simply go with a bit of reorder and had it go for if (iter_is_uaddr(i) || iter_is_xarray(i)) in there...