>>> On 16.12.15 at 22:24, <andrew.coop...@citrix.com> wrote: > @@ -22,6 +24,27 @@ void __init calculate_featuresets(void) > > /* Unconditionally claim to be able to set the hypervisor bit. */ > __set_bit(X86_FEATURE_HYPERVISOR, pv_featureset); > + > + /* HVM featureset. */ > + if ( hvm_enabled ) > + { > + const uint32_t *hvm_featuremask = hvm_funcs.hap_supported > + ? hvm_hap_featuremask : hvm_shadow_featuremask; > + > + for ( i = 0; i < ARRAY_SIZE(hvm_featureset); ++i ) > + hvm_featureset[i] = host_featureset[i] & hvm_featuremask[i]; > + > + /* Unconditionally claim to be able to set the hypervisor bit. */ > + __set_bit(X86_FEATURE_HYPERVISOR, hvm_featureset); > + > + /* > + * On AMD, PV guests are entirely unable to use 'sysenter' as Xen > runs > + * in long mode, but HVM guests are able if running in protected > mode. > + */ > + if ( (boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && > + !test_bit(X86_FEATURE_SEP, boot_cpu_data.x86_capability) )
Is the ! correct here? And please use cpu_has_sep. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel