0001
0002
0003 #ifndef __ASM_SPECTRE_H
0004 #define __ASM_SPECTRE_H
0005
0006 enum {
0007 SPECTRE_UNAFFECTED,
0008 SPECTRE_MITIGATED,
0009 SPECTRE_VULNERABLE,
0010 };
0011
0012 enum {
0013 __SPECTRE_V2_METHOD_BPIALL,
0014 __SPECTRE_V2_METHOD_ICIALLU,
0015 __SPECTRE_V2_METHOD_SMC,
0016 __SPECTRE_V2_METHOD_HVC,
0017 __SPECTRE_V2_METHOD_LOOP8,
0018 };
0019
0020 enum {
0021 SPECTRE_V2_METHOD_BPIALL = BIT(__SPECTRE_V2_METHOD_BPIALL),
0022 SPECTRE_V2_METHOD_ICIALLU = BIT(__SPECTRE_V2_METHOD_ICIALLU),
0023 SPECTRE_V2_METHOD_SMC = BIT(__SPECTRE_V2_METHOD_SMC),
0024 SPECTRE_V2_METHOD_HVC = BIT(__SPECTRE_V2_METHOD_HVC),
0025 SPECTRE_V2_METHOD_LOOP8 = BIT(__SPECTRE_V2_METHOD_LOOP8),
0026 };
0027
0028 #ifdef CONFIG_GENERIC_CPU_VULNERABILITIES
0029 void spectre_v2_update_state(unsigned int state, unsigned int methods);
0030 #else
0031 static inline void spectre_v2_update_state(unsigned int state,
0032 unsigned int methods)
0033 {}
0034 #endif
0035
0036 int spectre_bhb_update_vectors(unsigned int method);
0037
0038 #endif