[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 7/7] x86/pagewalk: Re-implement the pagetable walker
On 27/02/17 14:03, Andrew Cooper wrote: > The existing pagetable walker has complicated return semantics, which squeeze > multiple pieces of information into single integer. This would be fine if the > information didn't overlap, but it does. > > Specifically, _PAGE_INVALID_BITS for 3-level guests alias _PAGE_PAGED and > _PAGE_SHARED. A guest which constructs a PTE with bits 52 or 53 set (the > start of the upper software-available range) will create a virtual address > which, when walked by Xen, tricks Xen into believing the frame is paged or > shared. This behaviour was introduced by XSA-173 (c/s 8b17648). > > It is also complicated to turn rc back into a normal pagefault error code. > Instead, change the calling semantics to return a boolean indicating success, > and have the function accumulate a real pagefault error code as it goes > (including synthetic error codes, which do not alias hardware ones). This > requires an equivalent adjustment to map_domain_gfn(). > > Issues fixed: > * 2-level PSE36 superpages now return the correct translation. > * 2-level L2 superpages without CR0.PSE now return the correct translation. > * SMEP now inhibits a user instruction fetch even if NX isn't active. > * Supervisor writes without CR0.WP now set the leaf dirty bit. > * L4e._PAGE_GLOBAL is strictly reserved on AMD. > * 3-level l3 entries have all reserved bits checked. > * 3-level entries can no longer alias Xen's idea of paged or shared. > > Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Andy, Have you got this in a tree somewhere? This doesn't seem to apply to staging, and I don't think I'm going to be able to give it a proper review without seeing the changes in-situ. (Or if you're close to reposting I'll wait for the repost.) Thanks, -George _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |