On Fri, Aug 11, 2023 at 03:32:09PM +0100, David Howells wrote: > @@ -578,10 +683,11 @@ size_t copy_page_from_iter_atomic(struct page *page, unsigned offset, size_t byt > kunmap_atomic(kaddr); > return 0; > } > - iterate_and_advance(i, bytes, base, len, off, > - copyin(p + off, base, len), > - memcpy_from_iter(i, p + off, base, len) > - ) > + > + bytes = iterate_and_advance(i, bytes, p, > + copy_from_user_iter, > + iov_iter_is_copy_mc(i) ? > + memcpy_from_iter_mc : memcpy_from_iter); > kunmap_atomic(kaddr); > return bytes; > } Please work against linux-next; this function is completely rewritten there.