spectre.h 906 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. #ifndef __ASM_SPECTRE_H
  3. #define __ASM_SPECTRE_H
  4. enum {
  5. SPECTRE_UNAFFECTED,
  6. SPECTRE_MITIGATED,
  7. SPECTRE_VULNERABLE,
  8. };
  9. enum {
  10. __SPECTRE_V2_METHOD_BPIALL,
  11. __SPECTRE_V2_METHOD_ICIALLU,
  12. __SPECTRE_V2_METHOD_SMC,
  13. __SPECTRE_V2_METHOD_HVC,
  14. __SPECTRE_V2_METHOD_LOOP8,
  15. };
  16. enum {
  17. SPECTRE_V2_METHOD_BPIALL = BIT(__SPECTRE_V2_METHOD_BPIALL),
  18. SPECTRE_V2_METHOD_ICIALLU = BIT(__SPECTRE_V2_METHOD_ICIALLU),
  19. SPECTRE_V2_METHOD_SMC = BIT(__SPECTRE_V2_METHOD_SMC),
  20. SPECTRE_V2_METHOD_HVC = BIT(__SPECTRE_V2_METHOD_HVC),
  21. SPECTRE_V2_METHOD_LOOP8 = BIT(__SPECTRE_V2_METHOD_LOOP8),
  22. };
  23. #ifdef CONFIG_GENERIC_CPU_VULNERABILITIES
  24. void spectre_v2_update_state(unsigned int state, unsigned int methods);
  25. #else
  26. static inline void spectre_v2_update_state(unsigned int state,
  27. unsigned int methods)
  28. {}
  29. #endif
  30. int spectre_bhb_update_vectors(unsigned int method);
  31. #endif