]> www.infradead.org Git - users/jedix/linux-maple.git/commit
arm64: pageattr: Explicitly bail out when changing permissions for vmalloc_huge mappings
authorDev Jain <dev.jain@arm.com>
Thu, 3 Apr 2025 05:28:44 +0000 (10:58 +0530)
committerWill Deacon <will@kernel.org>
Tue, 29 Apr 2025 15:26:34 +0000 (16:26 +0100)
commitfcf8dda8cc4860076395d807d9b3f781ca1d8f4f
tree87b47b1a940679cb085b5c0805ceb0c30f98f83d
parentf101c56447717c595d803894ba0e215f56c6fba4
arm64: pageattr: Explicitly bail out when changing permissions for vmalloc_huge mappings

arm64 uses apply_to_page_range to change permissions for kernel vmalloc mappings,
which does not support changing permissions for block mappings. This function
will change permissions until it encounters a block mapping, and will bail
out with a warning. Since there are no reports of this triggering, it
implies that there are currently no cases of code doing a vmalloc_huge()
followed by partial permission change. But this is a footgun waiting to
go off, so let's detect it early and avoid the possibility of permissions
in an intermediate state. So,  explicitly disallow changing permissions
for VM_ALLOW_HUGE_VMAP mappings.

Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
Reviewed-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Signed-off-by: Dev Jain <dev.jain@arm.com>
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Gavin Shan <gshan@redhat.com>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Link: https://lore.kernel.org/r/20250403052844.61818-1-dev.jain@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/mm/pageattr.c