Commit 7f43c201 authored by Marc Zyngier's avatar Marc Zyngier

arm64: Make the Meltdown mitigation state available

Our Meltdown mitigation state isn't exposed outside of cpufeature.c,
contrary to the rest of the Spectre mitigation state. As we are going
to use it in KVM, expose a arm64_get_meltdown_state() helper which
returns the same possible values as arm64_get_spectre_v?_state().
Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parent 09162bc3
...@@ -29,4 +29,6 @@ bool has_spectre_v4(const struct arm64_cpu_capabilities *cap, int scope); ...@@ -29,4 +29,6 @@ bool has_spectre_v4(const struct arm64_cpu_capabilities *cap, int scope);
void spectre_v4_enable_mitigation(const struct arm64_cpu_capabilities *__unused); void spectre_v4_enable_mitigation(const struct arm64_cpu_capabilities *__unused);
void spectre_v4_enable_task_mitigation(struct task_struct *tsk); void spectre_v4_enable_task_mitigation(struct task_struct *tsk);
enum mitigation_state arm64_get_meltdown_state(void);
#endif /* __ASM_SPECTRE_H */ #endif /* __ASM_SPECTRE_H */
...@@ -2846,14 +2846,28 @@ static int __init enable_mrs_emulation(void) ...@@ -2846,14 +2846,28 @@ static int __init enable_mrs_emulation(void)
core_initcall(enable_mrs_emulation); 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, ssize_t cpu_show_meltdown(struct device *dev, struct device_attribute *attr,
char *buf) char *buf)
{ {
if (__meltdown_safe) switch (arm64_get_meltdown_state()) {
case SPECTRE_UNAFFECTED:
return sprintf(buf, "Not affected\n"); return sprintf(buf, "Not affected\n");
if (arm64_kernel_unmapped_at_el0()) case SPECTRE_MITIGATED:
return sprintf(buf, "Mitigation: PTI\n"); return sprintf(buf, "Mitigation: PTI\n");
return sprintf(buf, "Vulnerable\n"); default:
return sprintf(buf, "Vulnerable\n");
}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment