Re: [PATCH v2 01/17] mm/gup: Fixup p*_access_permitted()
From: Peter Zijlstra
Date: Mon Dec 18 2017 - 06:55:07 EST
On Fri, Dec 15, 2017 at 08:38:02AM -0800, Dan Williams wrote:
> The motivation was that I noticed that get_user_pages_fast() was doing
> a full pud_access_permitted() check, but the get_user_pages() slow
> path was only doing a pud_write() check. That was inconsistent so I
> went to go resolve that across all the pte types and ended up making a
> mess of things,
> I'm fine if the answer is that we should have went the
> other way to only do write checks. However, when I was investigating
> which way to go the aspect that persuaded me to start sprinkling
> p??_access_permitted checks around was that the application behavior
> changed between mmap access and direct-i/o access to the same buffer.
> I assumed that different access behavior between those would be an
> inconsistent surprise to userspace. Although, infinitely looping in
> handle_mm_fault is an even worse surprise, apologies for that.
Well, we all make a mess of things at time. I'm certainly guilty of
that, so no worries there. But it really helps if your Changelogs at
least describe what you're trying to do and why.
So I think I covered what you set out to do. In any case, Linus took the
whole lot back out, so we can look at this afresh.