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_babc...@epam.com> Acked-by: Julien Grall <julien.gr...@arm.com> Acked-by: Jan Beulich <jbeul...@suse.com> --- 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__ */ -- 2.7.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel