|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V5 4/6] x86/hvm: pkeys, add pkeys support for guest_walk_tables
On 22/12/15 10:30, Huaitong Han wrote:
> --- a/xen/include/asm-x86/processor.h
> +++ b/xen/include/asm-x86/processor.h
> @@ -373,6 +373,45 @@ static always_inline void clear_in_cr4 (unsigned long
> mask)
> write_cr4(read_cr4() & ~mask);
> }
>
> +static inline unsigned int read_pkru(void)
> +{
> + unsigned int pkru;
> +
> + /*
> + * _PAGE_PKEY_BITS have a conflict with _PAGE_GNTTAB used by PV guests,
> + * so that X86_CR4_PKE is disable on hypervisor, RDPKRU instruction can
> + * be used with temporarily setting CR4.PKE.
> + */
> + set_in_cr4(X86_CR4_PKE);
> + asm volatile (".byte 0x0f,0x01,0xee"
> + : "=a" (pkru) : "c" (0) : "dx");
> + clear_in_cr4(X86_CR4_PKE);
You can't use set/clear_in_cr4 here, as it modifies the global
mmu_cr4_features variable.
I would recommend
unsigned long cr4 = read_cr4();
write_cr4(cr4 | X86_CR4_PKE);
...
write_cr4(cr4);
instead.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |