[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] linux/x86-64: force _PAGE_NX on the 1:1 mapping (matching native)
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Date 1180015951 -3600 # Node ID 1fde9ebb8019c0f7079ffbc5ba800abcc9b1f882 # Parent 965bf43c9f1139135c2956cf90f916c335fd8e77 linux/x86-64: force _PAGE_NX on the 1:1 mapping (matching native) Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> --- linux-2.6-xen-sparse/arch/x86_64/mm/init-xen.c | 17 +++++++---------- 1 files changed, 7 insertions(+), 10 deletions(-) diff -r 965bf43c9f11 -r 1fde9ebb8019 linux-2.6-xen-sparse/arch/x86_64/mm/init-xen.c --- a/linux-2.6-xen-sparse/arch/x86_64/mm/init-xen.c Thu May 24 14:07:40 2007 +0100 +++ b/linux-2.6-xen-sparse/arch/x86_64/mm/init-xen.c Thu May 24 15:12:31 2007 +0100 @@ -479,18 +479,15 @@ phys_pmd_init(pmd_t *pmd, unsigned long pte = alloc_static_page(&pte_phys); pte_save = pte; for (k = 0; k < PTRS_PER_PTE; pte++, k++, address += PTE_SIZE) { + unsigned long pteval = address | _PAGE_NX | _KERNPG_TABLE; + if ((address >= end) || ((address >> PAGE_SHIFT) >= - xen_start_info->nr_pages)) { - __set_pte(pte, __pte(0)); - continue; - } - if (make_readonly(address)) { - __set_pte(pte, - __pte(address | (_KERNPG_TABLE & ~_PAGE_RW))); - continue; - } - __set_pte(pte, __pte(address | _KERNPG_TABLE)); + xen_start_info->nr_pages)) + pteval = 0; + else if (make_readonly(address)) + pteval &= ~_PAGE_RW; + __set_pte(pte, __pte(pteval & __supported_pte_mask)); } pte = pte_save; early_make_page_readonly(pte, XENFEAT_writable_page_tables); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |