|
@@ -21,6 +21,7 @@
|
|
|
|
|
|
#include <linux/types.h>
|
|
|
#include <linux/kvm_types.h>
|
|
|
+#include <asm/cputype.h>
|
|
|
#include <asm/kvm.h>
|
|
|
#include <asm/kvm_asm.h>
|
|
|
#include <asm/kvm_mmio.h>
|
|
@@ -311,8 +312,17 @@ static inline void kvm_arm_vhe_guest_exit(void) {}
|
|
|
|
|
|
static inline bool kvm_arm_harden_branch_predictor(void)
|
|
|
{
|
|
|
- /* No way to detect it yet, pretend it is not there. */
|
|
|
- return false;
|
|
|
+ switch(read_cpuid_part()) {
|
|
|
+#ifdef CONFIG_HARDEN_BRANCH_PREDICTOR
|
|
|
+ case ARM_CPU_PART_BRAHMA_B15:
|
|
|
+ case ARM_CPU_PART_CORTEX_A12:
|
|
|
+ case ARM_CPU_PART_CORTEX_A15:
|
|
|
+ case ARM_CPU_PART_CORTEX_A17:
|
|
|
+ return true;
|
|
|
+#endif
|
|
|
+ default:
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
#endif /* __ARM_KVM_HOST_H__ */
|