]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
mm/mremap: honour writable bit in mremap pte batching
authorDev Jain <dev.jain@arm.com>
Tue, 28 Oct 2025 06:39:52 +0000 (12:09 +0530)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 10 Nov 2025 05:19:44 +0000 (21:19 -0800)
commit04d1c9d60c6ec4c0003d433572eaa45f8b217788
treea63ba9b2ca15a2dd91458b2f704ed1f6890928a2
parentec4d11fc4b2dd4a2fa8c9d801ee9753b74623554
mm/mremap: honour writable bit in mremap pte batching

Currently mremap folio pte batch ignores the writable bit during figuring
out a set of similar ptes mapping the same folio.  Suppose that the first
pte of the batch is writable while the others are not - set_ptes will end
up setting the writable bit on the other ptes, which is a violation of
mremap semantics.  Therefore, use FPB_RESPECT_WRITE to check the writable
bit while determining the pte batch.

Link: https://lkml.kernel.org/r/20251028063952.90313-1-dev.jain@arm.com
Signed-off-by: Dev Jain <dev.jain@arm.com>
Fixes: f822a9a81a31 ("mm: optimize mremap() by PTE batching")
Reported-by: David Hildenbrand <david@redhat.com>
Debugged-by: David Hildenbrand <david@redhat.com>
Acked-by: David Hildenbrand <david@redhat.com>
Acked-by: Pedro Falcato <pfalcato@suse.de>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Barry Song <baohua@kernel.org>
Cc: Jann Horn <jannh@google.com>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: <stable@vger.kernel.org> [6.17+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/mremap.c