lkml.org 
[lkml]   [2017]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 05/11] arm64/cpufeature: detect pointer authentication
    Date
    So that we can dynamically handle the presence of pointer authentication
    functionality, wire up probing code in cpufeature.c.

    Currently, this only detects the presence of an architected algorithm.

    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    ---
    arch/arm64/include/asm/cpucaps.h | 4 +++-
    arch/arm64/kernel/cpufeature.c | 22 ++++++++++++++++++++++
    2 files changed, 25 insertions(+), 1 deletion(-)

    diff --git a/arch/arm64/include/asm/cpucaps.h b/arch/arm64/include/asm/cpucaps.h
    index 8d2272c..903b458 100644
    --- a/arch/arm64/include/asm/cpucaps.h
    +++ b/arch/arm64/include/asm/cpucaps.h
    @@ -39,7 +39,9 @@
    #define ARM64_WORKAROUND_QCOM_FALKOR_E1003 18
    #define ARM64_WORKAROUND_858921 19
    #define ARM64_WORKAROUND_CAVIUM_30115 20
    +#define ARM64_HAS_ADDRESS_AUTH 21
    +#define ARM64_HAS_GENERIC_AUTH 22

    -#define ARM64_NCAPS 21
    +#define ARM64_NCAPS 23

    #endif /* __ASM_CPUCAPS_H */
    diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
    index b23ad83..4016b1e7 100644
    --- a/arch/arm64/kernel/cpufeature.c
    +++ b/arch/arm64/kernel/cpufeature.c
    @@ -892,6 +892,28 @@ static bool has_no_fpsimd(const struct arm64_cpu_capabilities *entry, int __unus
    .min_field_value = 0,
    .matches = has_no_fpsimd,
    },
    +#ifdef CONFIG_ARM64_POINTER_AUTHENTICATION
    + {
    + .desc = "Address authentication (architected algorithm)",
    + .capability = ARM64_HAS_ADDRESS_AUTH,
    + .def_scope = SCOPE_SYSTEM,
    + .sys_reg = SYS_ID_AA64ISAR1_EL1,
    + .sign = FTR_UNSIGNED,
    + .field_pos = ID_AA64ISAR1_APA_SHIFT,
    + .min_field_value = ID_AA64ISAR1_APA_ARCHITECTED,
    + .matches = has_cpuid_feature,
    + },
    + {
    + .desc = "Generic authentication (architected algorithm)",
    + .capability = ARM64_HAS_GENERIC_AUTH,
    + .def_scope = SCOPE_SYSTEM,
    + .sys_reg = SYS_ID_AA64ISAR1_EL1,
    + .sign = FTR_UNSIGNED,
    + .field_pos = ID_AA64ISAR1_GPA_SHIFT,
    + .min_field_value = ID_AA64ISAR1_GPA_ARCHITECTED,
    + .matches = has_cpuid_feature
    + },
    +#endif /* CONFIG_ARM64_POINTER_AUTHENTICATION */
    {},
    };

    --
    1.9.1
    \
     
     \ /
      Last update: 2017-07-19 18:05    [W:4.255 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site