mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated
commit a5905d6af4 upstream.
KVM allows the guest to discover whether the ARCH_WORKAROUND SMCCC are
implemented, and to preserve that state during migration through its
firmware register interface.
Add the necessary boiler plate for SMCCC_ARCH_WORKAROUND_3.
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
[ kvm code moved to arch/arm/kvm, removed fw regs ABI. Added 32bit stub ]
Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
4dd8aae585
commit
df0448480b
@@ -349,4 +349,9 @@ static inline int kvm_arm_have_ssbd(void)
|
||||
return KVM_SSBD_UNKNOWN;
|
||||
}
|
||||
|
||||
static inline bool kvm_arm_spectre_bhb_mitigated(void)
|
||||
{
|
||||
/* 32bit guests don't need firmware for this */
|
||||
return false;
|
||||
}
|
||||
#endif /* __ARM_KVM_HOST_H__ */
|
||||
|
||||
@@ -431,6 +431,10 @@ int kvm_hvc_call_handler(struct kvm_vcpu *vcpu)
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ARM_SMCCC_ARCH_WORKAROUND_3:
|
||||
if (kvm_arm_spectre_bhb_mitigated())
|
||||
val = SMCCC_RET_SUCCESS;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -452,4 +452,8 @@ static inline int kvm_arm_have_ssbd(void)
|
||||
}
|
||||
}
|
||||
|
||||
static inline bool kvm_arm_spectre_bhb_mitigated(void)
|
||||
{
|
||||
return arm64_get_spectre_bhb_state() == SPECTRE_MITIGATED;
|
||||
}
|
||||
#endif /* __ARM64_KVM_HOST_H__ */
|
||||
|
||||
Reference in New Issue
Block a user