The patch titled Subject: arm64: add support for sub-page faults user probing has been removed from the -mm tree. Its filename was arm64-add-support-for-sub-page-faults-user-probing.patch
This patch was dropped because an updated version will be merged
------------------------------------------------------ From: Catalin Marinas catalin.marinas@arm.com Subject: arm64: add support for sub-page faults user probing
With MTE, even if the pte allows an access, a mismatched tag somewhere within a page can still cause a fault. Select ARCH_HAS_SUBPAGE_FAULTS if MTE is enabled and implement probe_user_writeable().
Link: https://lkml.kernel.org/r/20211124192024.2408218-3-catalin.marinas@arm.com Fixes: a48b73eca4ce ("btrfs: fix potential deadlock in the search ioctl") Signed-off-by: Catalin Marinas catalin.marinas@arm.com Cc: Al Viro viro@zeniv.linux.org.uk Cc: Andreas Gruenbacher agruenba@redhat.com Cc: David Sterba dsterba@suse.com Cc: Josef Bacik josef@toxicpanda.com Cc: Matthew Wilcox willy@infradead.org Cc: Will Deacon will@kernel.org Cc: stable@vger.kernel.org Signed-off-by: Andrew Morton akpm@linux-foundation.org ---
arch/arm64/Kconfig | 1 arch/arm64/include/asm/uaccess.h | 33 +++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+)
--- a/arch/arm64/include/asm/uaccess.h~arm64-add-support-for-sub-page-faults-user-probing +++ a/arch/arm64/include/asm/uaccess.h @@ -479,4 +479,37 @@ static inline int __copy_from_user_flush } #endif
+#ifdef CONFIG_ARCH_HAS_SUBPAGE_FAULTS +static inline size_t __mte_probe_user_range(const char __user *uaddr, + size_t size) +{ + const char __user *end = uaddr + size; + int err = 0; + char val; + + uaddr = PTR_ALIGN_DOWN(uaddr, MTE_GRANULE_SIZE); + while (uaddr < end) { + /* + * A read is sufficient for MTE, the caller should have probed + * for the pte write permission. + */ + __raw_get_user(val, uaddr, err); + if (err) + return end - uaddr; + uaddr += MTE_GRANULE_SIZE; + } + (void)val; + + return 0; +} + +static inline size_t probe_user_writable(const void __user *uaddr, + size_t size) +{ + if (!system_supports_mte()) + return 0; + return __mte_probe_user_range(uaddr, size); +} +#endif /* CONFIG_ARCH_HAS_SUBPAGE_FAULTS */ + #endif /* __ASM_UACCESS_H */ --- a/arch/arm64/Kconfig~arm64-add-support-for-sub-page-faults-user-probing +++ a/arch/arm64/Kconfig @@ -1777,6 +1777,7 @@ config ARM64_MTE depends on AS_HAS_LSE_ATOMICS # Required for tag checking in the uaccess routines depends on ARM64_PAN + select ARCH_HAS_SUBPAGE_FAULTS select ARCH_USES_HIGH_VMA_FLAGS help Memory Tagging (part of the ARMv8.5 Extensions) provides _
Patches currently in -mm which might be from catalin.marinas@arm.com are
btrfs-avoid-live-lock-in-search_ioctl-on-hardware-with-sub-page-faults.patch
linux-stable-mirror@lists.linaro.org