[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V6 5/5] x86/hvm: pkeys, add pkeys support for cpuid handling
>>> On 19.01.16 at 08:30, <huaitong.han@xxxxxxxxx> wrote: > --- a/xen/arch/x86/hvm/hvm.c > +++ b/xen/arch/x86/hvm/hvm.c > @@ -4566,7 +4566,7 @@ void hvm_cpuid(unsigned int input, unsigned int *eax, > unsigned int *ebx, > __clear_bit(X86_FEATURE_APIC & 31, edx); > > /* Fix up OSXSAVE. */ > - if ( cpu_has_xsave ) > + if ( *ecx & cpufeat_mask(X86_FEATURE_XSAVE) ) > *ecx |= (v->arch.hvm_vcpu.guest_cr[4] & X86_CR4_OSXSAVE) ? > cpufeat_mask(X86_FEATURE_OSXSAVE) : 0; Imo this change (aiming at consistency) would better be mentioned in the commit message, to avoid the impression of an unintended / unrelated change. > @@ -4579,21 +4579,31 @@ void hvm_cpuid(unsigned int input, unsigned int *eax, > unsigned int *ebx, > *edx &= ~cpufeat_mask(X86_FEATURE_PSE36); > break; > case 0x7: > - if ( (count == 0) && !cpu_has_smep ) > - *ebx &= ~cpufeat_mask(X86_FEATURE_SMEP); > + if ( count == 0 ) > + { > + if ( !cpu_has_smep ) > + *ebx &= ~cpufeat_mask(X86_FEATURE_SMEP); > > - if ( (count == 0) && !cpu_has_smap ) > - *ebx &= ~cpufeat_mask(X86_FEATURE_SMAP); > + if ( !cpu_has_smap ) > + *ebx &= ~cpufeat_mask(X86_FEATURE_SMAP); > > - /* Don't expose MPX to hvm when VMX support is not available */ > - if ( (count == 0) && > - (!(vmx_vmexit_control & VM_EXIT_CLEAR_BNDCFGS) || > - !(vmx_vmentry_control & VM_ENTRY_LOAD_BNDCFGS)) ) > - *ebx &= ~cpufeat_mask(X86_FEATURE_MPX); > + /* Don't expose MPX to hvm when VMX support is not available. */ > + if ( !(vmx_vmexit_control & VM_EXIT_CLEAR_BNDCFGS) || > + !(vmx_vmentry_control & VM_ENTRY_LOAD_BNDCFGS) ) > + *ebx &= ~cpufeat_mask(X86_FEATURE_MPX); > > - /* Don't expose INVPCID to non-hap hvm. */ > - if ( (count == 0) && !hap_enabled(d) ) > - *ebx &= ~cpufeat_mask(X86_FEATURE_INVPCID); > + if ( !hap_enabled(d) ) > + { > + /* Don't expose INVPCID to non-hap hvm. */ > + *ebx &= ~cpufeat_mask(X86_FEATURE_INVPCID); > + /* X86_FEATURE_PKU is not yet implemented for shadow paging. > */ > + *ecx &= ~cpufeat_mask(X86_FEATURE_PKU); > + } > + > + if ( (*ecx & cpufeat_mask(X86_FEATURE_PKU)) && > + (v->arch.hvm_vcpu.guest_cr[4] & X86_CR4_PKE) ) Indentation. But this whole hunk needs re-basing anyway. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |