arm64: uaccess: remove vestigal UAO support
authorMark Rutland <mark.rutland@arm.com>
Wed, 2 Dec 2020 13:15:58 +0000 (13:15 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 2 Dec 2020 19:49:11 +0000 (19:49 +0000)
Now that arm64 no longer uses UAO, remove the vestigal feature detection
code and Kconfig text.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: James Morse <james.morse@arm.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20201202131558.39270-13-mark.rutland@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/Kconfig
arch/arm64/include/asm/cpucaps.h
arch/arm64/kernel/cpufeature.c

index 6fae3ec1f2b6c58495e025734dc8e3d3912648da..8d13b91356340adcea444d9933f84a3e7921321c 100644 (file)
@@ -1427,27 +1427,6 @@ endmenu
 
 menu "ARMv8.2 architectural features"
 
-config ARM64_UAO
-       bool "Enable support for User Access Override (UAO)"
-       default y
-       help
-         User Access Override (UAO; part of the ARMv8.2 Extensions)
-         causes the 'unprivileged' variant of the load/store instructions to
-         be overridden to be privileged.
-
-         This option changes get_user() and friends to use the 'unprivileged'
-         variant of the load/store instructions. This ensures that user-space
-         really did have access to the supplied memory. When addr_limit is
-         set to kernel memory the UAO bit will be set, allowing privileged
-         access to kernel memory.
-
-         Choosing this option will cause copy_to_user() et al to use user-space
-         memory permissions.
-
-         The feature is detected at runtime, the kernel will use the
-         regular load/store instructions if the cpu does not implement the
-         feature.
-
 config ARM64_PMEM
        bool "Enable support for persistent memory"
        select ARCH_HAS_PMEM_API
index ab3bec7a5a4d19f49edd3c4623799d670792a96f..a7242ef2a2cd6581e72eac43fef38ba3e44a3848 100644 (file)
@@ -16,7 +16,6 @@
 #define ARM64_WORKAROUND_CAVIUM_23154          6
 #define ARM64_WORKAROUND_834220                        7
 #define ARM64_HAS_NO_HW_PREFETCH               8
-#define ARM64_HAS_UAO                          9
 #define ARM64_HAS_VIRT_HOST_EXTN               11
 #define ARM64_WORKAROUND_CAVIUM_27456          12
 #define ARM64_HAS_32BIT_EL0                    13
index d09bdc60a8e32812323c45dd9bb6cde6818cbd37..cf09bac80adb970e353b43071260cce7c1f67f09 100644 (file)
@@ -1764,17 +1764,6 @@ static const struct arm64_cpu_capabilities arm64_features[] = {
                .type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE,
                .matches = has_no_hw_prefetch,
        },
-#ifdef CONFIG_ARM64_UAO
-       {
-               .desc = "User Access Override",
-               .capability = ARM64_HAS_UAO,
-               .type = ARM64_CPUCAP_SYSTEM_FEATURE,
-               .matches = has_cpuid_feature,
-               .sys_reg = SYS_ID_AA64MMFR2_EL1,
-               .field_pos = ID_AA64MMFR2_UAO_SHIFT,
-               .min_field_value = 1,
-       },
-#endif /* CONFIG_ARM64_UAO */
 #ifdef CONFIG_ARM64_VHE
        {
                .desc = "Virtualization Host Extensions",