diff options
author | Will Deacon <will@kernel.org> | 2020-09-16 00:30:17 +0200 |
---|---|---|
committer | Will Deacon <will@kernel.org> | 2020-09-29 17:08:15 +0200 |
commit | d4647f0a2ad711101067cba69c34716758aa1e48 (patch) | |
tree | f65d9fa7399f261dbf6d9a11019e2594e4d80047 /arch/arm64/include/asm/spectre.h | |
parent | arm64: Introduce separate file for spectre mitigations and reporting (diff) | |
download | linux-d4647f0a2ad711101067cba69c34716758aa1e48.tar.xz linux-d4647f0a2ad711101067cba69c34716758aa1e48.zip |
arm64: Rewrite Spectre-v2 mitigation code
The Spectre-v2 mitigation code is pretty unwieldy and hard to maintain.
This is largely due to it being written hastily, without much clue as to
how things would pan out, and also because it ends up mixing policy and
state in such a way that it is very difficult to figure out what's going
on.
Rewrite the Spectre-v2 mitigation so that it clearly separates state from
policy and follows a more structured approach to handling the mitigation.
Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'arch/arm64/include/asm/spectre.h')
-rw-r--r-- | arch/arm64/include/asm/spectre.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/spectre.h b/arch/arm64/include/asm/spectre.h new file mode 100644 index 000000000000..b776abe28dff --- /dev/null +++ b/arch/arm64/include/asm/spectre.h @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Interface for managing mitigations for Spectre vulnerabilities. + * + * Copyright (C) 2020 Google LLC + * Author: Will Deacon <will@kernel.org> + */ + +#ifndef __ASM_SPECTRE_H +#define __ASM_SPECTRE_H + +#include <asm/cpufeature.h> + +/* Watch out, ordering is important here. */ +enum mitigation_state { + SPECTRE_UNAFFECTED, + SPECTRE_MITIGATED, + SPECTRE_VULNERABLE, +}; + +struct task_struct; + +enum mitigation_state arm64_get_spectre_v2_state(void); +bool has_spectre_v2(const struct arm64_cpu_capabilities *cap, int scope); +void spectre_v2_enable_mitigation(const struct arm64_cpu_capabilities *__unused); + +#endif /* __ASM_SPECTRE_H */ |