|
[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 |