]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - arch/arm64/include/asm/kvm_host.h
arm64: KVM: Add ARCH_WORKAROUND_2 discovery through ARCH_FEATURES_FUNC_ID
[linux.git] / arch / arm64 / include / asm / kvm_host.h
index 9bef3f69bdcdd4cfbdcd5e9cba862b33f10b1413..95d8a0e15b5fbcede8b98a708e1ea6559eb7aada 100644 (file)
@@ -455,6 +455,29 @@ static inline bool kvm_arm_harden_branch_predictor(void)
        return cpus_have_const_cap(ARM64_HARDEN_BRANCH_PREDICTOR);
 }
 
+#define KVM_SSBD_UNKNOWN               -1
+#define KVM_SSBD_FORCE_DISABLE         0
+#define KVM_SSBD_KERNEL                1
+#define KVM_SSBD_FORCE_ENABLE          2
+#define KVM_SSBD_MITIGATED             3
+
+static inline int kvm_arm_have_ssbd(void)
+{
+       switch (arm64_get_ssbd_state()) {
+       case ARM64_SSBD_FORCE_DISABLE:
+               return KVM_SSBD_FORCE_DISABLE;
+       case ARM64_SSBD_KERNEL:
+               return KVM_SSBD_KERNEL;
+       case ARM64_SSBD_FORCE_ENABLE:
+               return KVM_SSBD_FORCE_ENABLE;
+       case ARM64_SSBD_MITIGATED:
+               return KVM_SSBD_MITIGATED;
+       case ARM64_SSBD_UNKNOWN:
+       default:
+               return KVM_SSBD_UNKNOWN;
+       }
+}
+
 void kvm_vcpu_load_sysregs(struct kvm_vcpu *vcpu);
 void kvm_vcpu_put_sysregs(struct kvm_vcpu *vcpu);