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