On Sun, Jan 02, 2022 at 04:19:41PM +0000, Matthew Wilcox wrote: > +++ b/include/linux/uio.h > @@ -150,7 +150,7 @@ size_t _copy_from_iter_nocache(void *addr, size_t bytes, struct iov_iter *i); > static inline size_t copy_folio_to_iter(struct folio *folio, size_t offset, > size_t bytes, struct iov_iter *i) > { > - return copy_page_to_iter((struct page *)folio, offset, bytes, i); > + return copy_page_to_iter(&folio->page, offset, bytes, i); > } Mmmpf. I should have tested this more thoroughly. Some files currently include uio.h without including mm_types.h. So this on top fixes the build: +++ b/include/linux/uio.h @@ -7,10 +7,10 @@ #include <linux/kernel.h> #include <linux/thread_info.h> +#include <linux/mm_types.h> #include <uapi/linux/uio.h> struct page; -struct folio; struct pipe_inode_info; struct kvec {