2022-02-11 16:45:54 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
|
|
|
|
#ifndef __ASM_SPECTRE_H
|
|
|
|
#define __ASM_SPECTRE_H
|
|
|
|
|
|
|
|
enum {
|
|
|
|
SPECTRE_UNAFFECTED,
|
|
|
|
SPECTRE_MITIGATED,
|
|
|
|
SPECTRE_VULNERABLE,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum {
|
|
|
|
__SPECTRE_V2_METHOD_BPIALL,
|
|
|
|
__SPECTRE_V2_METHOD_ICIALLU,
|
|
|
|
__SPECTRE_V2_METHOD_SMC,
|
|
|
|
__SPECTRE_V2_METHOD_HVC,
|
2022-02-10 16:05:45 +00:00
|
|
|
__SPECTRE_V2_METHOD_LOOP8,
|
2022-02-11 16:45:54 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
enum {
|
|
|
|
SPECTRE_V2_METHOD_BPIALL = BIT(__SPECTRE_V2_METHOD_BPIALL),
|
|
|
|
SPECTRE_V2_METHOD_ICIALLU = BIT(__SPECTRE_V2_METHOD_ICIALLU),
|
|
|
|
SPECTRE_V2_METHOD_SMC = BIT(__SPECTRE_V2_METHOD_SMC),
|
|
|
|
SPECTRE_V2_METHOD_HVC = BIT(__SPECTRE_V2_METHOD_HVC),
|
2022-02-10 16:05:45 +00:00
|
|
|
SPECTRE_V2_METHOD_LOOP8 = BIT(__SPECTRE_V2_METHOD_LOOP8),
|
2022-02-11 16:45:54 +00:00
|
|
|
};
|
|
|
|
|
2022-03-11 11:49:12 -08:00
|
|
|
#ifdef CONFIG_GENERIC_CPU_VULNERABILITIES
|
2022-02-11 16:45:54 +00:00
|
|
|
void spectre_v2_update_state(unsigned int state, unsigned int methods);
|
2022-03-11 11:49:12 -08:00
|
|
|
#else
|
|
|
|
static inline void spectre_v2_update_state(unsigned int state,
|
|
|
|
unsigned int methods)
|
|
|
|
{}
|
|
|
|
#endif
|
2022-02-11 16:45:54 +00:00
|
|
|
|
2022-02-10 16:05:45 +00:00
|
|
|
int spectre_bhb_update_vectors(unsigned int method);
|
|
|
|
|
2023-06-02 19:28:44 +01:00
|
|
|
void cpu_v7_ca8_ibe(void);
|
|
|
|
void cpu_v7_ca15_ibe(void);
|
|
|
|
void cpu_v7_bugs_init(void);
|
|
|
|
|
2022-02-11 16:45:54 +00:00
|
|
|
#endif
|