Message ID | 65b8771bfecada08bf02c9cf87c2f0f9cdf943b3.1617281290.git.haibo.xu@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/arm: Add nested virtualization support | expand |
On Thu, Apr 01, 2021 at 05:55:34AM -0700, Haibo Xu wrote: > Signed-off-by: Haibo Xu <haibo.xu@linaro.org> > --- > target/arm/kvm64.c | 5 +++++ > target/arm/kvm_arm.h | 13 +++++++++++++ > 2 files changed, 18 insertions(+) > > diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c > index dff85f6db9..9cacaf2eb8 100644 > --- a/target/arm/kvm64.c > +++ b/target/arm/kvm64.c > @@ -721,6 +721,11 @@ bool kvm_arm_steal_time_supported(void) > return kvm_check_extension(kvm_state, KVM_CAP_STEAL_TIME); > } > > +bool kvm_arm_el2_supported(void) > +{ > + return kvm_check_extension(kvm_state, KVM_CAP_ARM_EL2); > +} > + > QEMU_BUILD_BUG_ON(KVM_ARM64_SVE_VQ_MIN != 1); > > void kvm_arm_sve_get_vls(CPUState *cs, unsigned long *map) > diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h > index 34f8daa377..7d7fc7981b 100644 > --- a/target/arm/kvm_arm.h > +++ b/target/arm/kvm_arm.h > @@ -285,6 +285,14 @@ void kvm_arm_steal_time_finalize(ARMCPU *cpu, Error **errp); > */ > bool kvm_arm_steal_time_supported(void); > > +/** > + * kvm_arm_el2_supported: > + * > + * Returns: true if KVM can enable el2(nested virtualization) ^ please add a space > + * and false otherwise. > + */ > +bool kvm_arm_el2_supported(void); > + > /** > * kvm_arm_aarch32_supported: > * > @@ -398,6 +406,11 @@ static inline bool kvm_arm_steal_time_supported(void) > return false; > } > > +static inline bool kvm_arm_el2_supported(void) > +{ > + return false; > +} > + > /* > * These functions should never actually be called without KVM support. > */ > -- > 2.17.1 > > Otherwise Reviewed-by: Andrew Jones <drjones@redhat.com>
diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c index dff85f6db9..9cacaf2eb8 100644 --- a/target/arm/kvm64.c +++ b/target/arm/kvm64.c @@ -721,6 +721,11 @@ bool kvm_arm_steal_time_supported(void) return kvm_check_extension(kvm_state, KVM_CAP_STEAL_TIME); } +bool kvm_arm_el2_supported(void) +{ + return kvm_check_extension(kvm_state, KVM_CAP_ARM_EL2); +} + QEMU_BUILD_BUG_ON(KVM_ARM64_SVE_VQ_MIN != 1); void kvm_arm_sve_get_vls(CPUState *cs, unsigned long *map) diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h index 34f8daa377..7d7fc7981b 100644 --- a/target/arm/kvm_arm.h +++ b/target/arm/kvm_arm.h @@ -285,6 +285,14 @@ void kvm_arm_steal_time_finalize(ARMCPU *cpu, Error **errp); */ bool kvm_arm_steal_time_supported(void); +/** + * kvm_arm_el2_supported: + * + * Returns: true if KVM can enable el2(nested virtualization) + * and false otherwise. + */ +bool kvm_arm_el2_supported(void); + /** * kvm_arm_aarch32_supported: * @@ -398,6 +406,11 @@ static inline bool kvm_arm_steal_time_supported(void) return false; } +static inline bool kvm_arm_el2_supported(void) +{ + return false; +} + /* * These functions should never actually be called without KVM support. */
Signed-off-by: Haibo Xu <haibo.xu@linaro.org> --- target/arm/kvm64.c | 5 +++++ target/arm/kvm_arm.h | 13 +++++++++++++ 2 files changed, 18 insertions(+)