Message ID | 1507150827-7858-12-git-send-email-volodymyr_babchuk@epam.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Volodymyr, On 04/10/17 22:00, Volodymyr Babchuk wrote: > This feature indicates that hypervisor is compatible with ARM > SMC calling convention. Previously hypervisor would inject an > undefined instruction exception if an invalid SMC function were > called or would crash a domain if an invalid HVC function > were invoked. > XENFEAT_ARM_SMCCC_supported feature means that it safe to invoke > SMC/HVC calls that are compatible with SMC calling convention. > > Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Julien Grall <julien.grall@arm.com> Note that an acked-by/reviewed-by "THE REST" is still needed on this patch. Cheers, > --- > xen/common/kernel.c | 3 +++ > xen/include/public/features.h | 3 +++ > 2 files changed, 6 insertions(+) > > diff --git a/xen/common/kernel.c b/xen/common/kernel.c > index 94fdf5c..8d137c5 100644 > --- a/xen/common/kernel.c > +++ b/xen/common/kernel.c > @@ -394,6 +394,9 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) > (1U << XENFEAT_auto_translated_physmap); > if ( is_hardware_domain(d) ) > fi.submap |= 1U << XENFEAT_dom0; > +#ifdef CONFIG_ARM > + fi.submap |= (1U << XENFEAT_ARM_SMCCC_supported); > +#endif > #ifdef CONFIG_X86 > switch ( d->guest_type ) > { > diff --git a/xen/include/public/features.h b/xen/include/public/features.h > index 2110b04..1a989b8 100644 > --- a/xen/include/public/features.h > +++ b/xen/include/public/features.h > @@ -102,6 +102,9 @@ > /* Guest can use XENMEMF_vnode to specify virtual node for memory op. */ > #define XENFEAT_memory_op_vnode_supported 13 > > +/* arm: Hypervisor supports ARM SMC calling convention. */ > +#define XENFEAT_ARM_SMCCC_supported 14 > + > #define XENFEAT_NR_SUBMAPS 1 > > #endif /* __XEN_PUBLIC_FEATURES_H__ */ >
>>> On 06.10.17 at 16:01, <julien.grall@arm.com> wrote: > Hi Volodymyr, > > On 04/10/17 22:00, Volodymyr Babchuk wrote: >> This feature indicates that hypervisor is compatible with ARM >> SMC calling convention. Previously hypervisor would inject an >> undefined instruction exception if an invalid SMC function were >> called or would crash a domain if an invalid HVC function >> were invoked. >> XENFEAT_ARM_SMCCC_supported feature means that it safe to invoke >> SMC/HVC calls that are compatible with SMC calling convention. >> >> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> > > Acked-by: Julien Grall <julien.grall@arm.com> > > Note that an acked-by/reviewed-by "THE REST" is still needed on this patch. Here you go: Acked-by: Jan Beulich <jbeulich@suse.com>
diff --git a/xen/common/kernel.c b/xen/common/kernel.c index 94fdf5c..8d137c5 100644 --- a/xen/common/kernel.c +++ b/xen/common/kernel.c @@ -394,6 +394,9 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) (1U << XENFEAT_auto_translated_physmap); if ( is_hardware_domain(d) ) fi.submap |= 1U << XENFEAT_dom0; +#ifdef CONFIG_ARM + fi.submap |= (1U << XENFEAT_ARM_SMCCC_supported); +#endif #ifdef CONFIG_X86 switch ( d->guest_type ) { diff --git a/xen/include/public/features.h b/xen/include/public/features.h index 2110b04..1a989b8 100644 --- a/xen/include/public/features.h +++ b/xen/include/public/features.h @@ -102,6 +102,9 @@ /* Guest can use XENMEMF_vnode to specify virtual node for memory op. */ #define XENFEAT_memory_op_vnode_supported 13 +/* arm: Hypervisor supports ARM SMC calling convention. */ +#define XENFEAT_ARM_SMCCC_supported 14 + #define XENFEAT_NR_SUBMAPS 1 #endif /* __XEN_PUBLIC_FEATURES_H__ */
This feature indicates that hypervisor is compatible with ARM SMC calling convention. Previously hypervisor would inject an undefined instruction exception if an invalid SMC function were called or would crash a domain if an invalid HVC function were invoked. XENFEAT_ARM_SMCCC_supported feature means that it safe to invoke SMC/HVC calls that are compatible with SMC calling convention. Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> --- xen/common/kernel.c | 3 +++ xen/include/public/features.h | 3 +++ 2 files changed, 6 insertions(+)