On 11/30/18 2:25 PM, Al Viro wrote: > On Fri, Nov 30, 2018 at 02:16:38PM -0700, Jens Axboe wrote: >>>> Would this make you happy: >>>> >>>> if (!is_vmalloc_addr(kv->iov_base)) >>>> page = virt_to_page(kv->iov_base); >>>> else >>>> page = vmalloc_to_page(kv->iov_base); >>> >>> Free advice: don't ever let Linus see anything along those lines. Results >>> tend to be colourful... >> >> We already have those lines in the kernel, XFS for instance. Al, could you >> please try to be helpful instead of being deliberately obtuse? > > Again, the last time something like that had been suggested, Linus had replied > with a very impressive rant. I *did* propose pretty much that, and reaction > was basically "hell no, not in general-purpose primitives". Precisely about > iov_iter stuff. A part of that was due to touching page refcounts, but quite > a bit wasn't.
Nobody is touching the page count here, and for the aio user mapped IO, nobody is touching them at the end either. As far as I can tell, the above is fine. It's either a vmalloc'ed address and should be treated specially, or we can do virt_to_page() on it. Do you have a link to said rant? -- Jens Axboe