Currently there's a confusing mess around VMA_LOCKED_BIT and
VMA_LOCKONFAULT_BIT.
It is permitted for drivers to set any flags they like, with the VMA
already possessing lock flags.
This results in the absurd situation of a VMA possessing both
VMA_SPECIAL_FLAGS and VMA_LOCKED_MASK flags, which is not permitted.
This has resulted in mlock_vma_folio() having a very silly check for this
scenario to work around it.
There is no need for this - just clear the flags before invoking the hook
and reinstate them afterwards if they are required.
Nothing relies upon this being set during the mmap operation.
mmap_prepare is unaffected by this so requires no fix.
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Lorenzo Stoakes (ARM) <ljs@kernel.org>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261003-b4-mmap-prepare-vma-flag-sanify-v4-0-a1f052500fd7@kernel.org?part=22