mm/userfaultfd: UFFDIO_MOVE implementation should use ptep_get()
authorRyan Roberts <ryan.roberts@arm.com>
Tue, 23 Jan 2024 14:17:55 +0000 (14:17 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 8 Feb 2024 05:20:33 +0000 (21:20 -0800)
commit56ae10cf628b02279980d17439c6241a643959c2
tree609fc879bf1a6b622980e3c155c62fc769f3058e
parentc1be35a16b2f1fe21f4f26f9de030ad6eaaf6a25
mm/userfaultfd: UFFDIO_MOVE implementation should use ptep_get()

Commit c33c794828f2 ("mm: ptep_get() conversion") converted all (non-arch)
call sites to use ptep_get() instead of doing a direct dereference of the
pte.  Full rationale can be found in that commit's log.

Since then, UFFDIO_MOVE has been implemented which does 7 direct pte
dereferences.  Let's fix those up to use ptep_get().

I've asserted in the past that there is no reliable automated mechanism to
catch these; I'm relying on a combination of Coccinelle (which throws up a
lot of false positives) and some compiler magic to force a compiler error
on dereference.  But given the frequency with which new issues are coming
up, I'll add it to my todo list to try to find an automated solution.

Link: https://lkml.kernel.org/r/20240123141755.3836179-1-ryan.roberts@arm.com
Fixes: adef440691ba ("userfaultfd: UFFDIO_MOVE uABI")
Signed-off-by: Ryan Roberts <ryan.roberts@arm.com>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: David Hildenbrand <david@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/userfaultfd.c