diff options
author | Marc Zyngier <maz@kernel.org> | 2020-12-03 20:12:24 +0100 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2020-12-03 20:12:24 +0100 |
commit | f86e54653e67171a7cc0f85e0fe5766deb310e03 (patch) | |
tree | b2be5165cb614be0199c71f703a27b1019481428 /arch/arm64/kernel | |
parent | Merge branch 'kvm-arm64/misc-5.11' into kvmarm-master/next (diff) | |
parent | KVM: arm64: Advertise ID_AA64PFR0_EL1.CSV3=1 if the CPUs are Meltdown-safe (diff) | |
download | linux-f86e54653e67171a7cc0f85e0fe5766deb310e03.tar.xz linux-f86e54653e67171a7cc0f85e0fe5766deb310e03.zip |
Merge remote-tracking branch 'origin/kvm-arm64/csv3' into kvmarm-master/queue
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'arch/arm64/kernel')
-rw-r--r-- | arch/arm64/kernel/cpufeature.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c index 6f36c4f62f69..280b10762f6b 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c @@ -2846,14 +2846,28 @@ static int __init enable_mrs_emulation(void) core_initcall(enable_mrs_emulation); +enum mitigation_state arm64_get_meltdown_state(void) +{ + if (__meltdown_safe) + return SPECTRE_UNAFFECTED; + + if (arm64_kernel_unmapped_at_el0()) + return SPECTRE_MITIGATED; + + return SPECTRE_VULNERABLE; +} + ssize_t cpu_show_meltdown(struct device *dev, struct device_attribute *attr, char *buf) { - if (__meltdown_safe) + switch (arm64_get_meltdown_state()) { + case SPECTRE_UNAFFECTED: return sprintf(buf, "Not affected\n"); - if (arm64_kernel_unmapped_at_el0()) + case SPECTRE_MITIGATED: return sprintf(buf, "Mitigation: PTI\n"); - return sprintf(buf, "Vulnerable\n"); + default: + return sprintf(buf, "Vulnerable\n"); + } } |