OSDN Git Service

arm64: Use register field helper in kaslr_requires_kpti()
authorWill Deacon <will@kernel.org>
Wed, 15 Jan 2020 14:06:37 +0000 (14:06 +0000)
committerWill Deacon <will@kernel.org>
Wed, 15 Jan 2020 16:49:48 +0000 (16:49 +0000)
Rather than open-code the extraction of the E0PD field from the MMFR2
register, we can use the cpuid_feature_extract_unsigned_field() helper
instead.

Acked-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/cpufeature.c

index d5242b4..1ebeb5b 100644 (file)
@@ -980,7 +980,6 @@ has_useable_cnp(const struct arm64_cpu_capabilities *entry, int scope)
  */
 bool kaslr_requires_kpti(void)
 {
-       u64 ftr;
        if (!IS_ENABLED(CONFIG_RANDOMIZE_BASE))
                return false;
 
@@ -989,8 +988,9 @@ bool kaslr_requires_kpti(void)
         * where available.
         */
        if (IS_ENABLED(CONFIG_ARM64_E0PD)) {
-               ftr = read_sysreg_s(SYS_ID_AA64MMFR2_EL1);
-               if ((ftr >> ID_AA64MMFR2_E0PD_SHIFT) & 0xf)
+               u64 mmfr2 = read_sysreg_s(SYS_ID_AA64MMFR2_EL1);
+               if (cpuid_feature_extract_unsigned_field(mmfr2,
+                                               ID_AA64MMFR2_E0PD_SHIFT))
                        return false;
        }