[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] The patch attached restores NX/XD support in x86_64 xenlinux. When the



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 5db799f4c40e61acda514977b6d5144bb7611fb1
# Parent  6778d68a2c4cea49bccc90ead12395ee28d61189

The patch attached restores NX/XD support in x86_64 xenlinux. When the
port was being done, Xen did not want to see the bit 63 in ptes, and it
now allows the guests to set it. Also include cleanups (warning when
compiling domU).

Signed-off-by: Jun Nakajima <jun.nakajima@xxxxxxxxx>

diff -r 6778d68a2c4c -r 5db799f4c40e 
linux-2.6-xen-sparse/arch/xen/x86_64/mm/init.c
--- a/linux-2.6-xen-sparse/arch/xen/x86_64/mm/init.c    Wed Jul 13 08:36:38 2005
+++ b/linux-2.6-xen-sparse/arch/xen/x86_64/mm/init.c    Wed Jul 13 08:37:38 2005
@@ -641,8 +641,6 @@
 #ifndef CONFIG_DISCONTIGMEM
 void __init paging_init(void)
 {
-        int i;
-
        {
                unsigned long zones_size[MAX_NR_ZONES] = {0, 0, 0};
                 /*     unsigned int max_dma; */
@@ -664,14 +662,17 @@
         memset(empty_zero_page, 0, sizeof(empty_zero_page));
 
 #ifdef CONFIG_XEN_PHYSDEV_ACCESS
+       {
+               int i;
         /* Setup mapping of lower 1st MB */
-        for (i = 0; i < NR_FIX_ISAMAPS; i++)
-                if (xen_start_info.flags & SIF_PRIVILEGED)
-                        set_fixmap(FIX_ISAMAP_BEGIN - i, i * PAGE_SIZE);
-                else
-                        __set_fixmap(FIX_ISAMAP_BEGIN - i,
-                                    virt_to_machine(empty_zero_page),
-                                    PAGE_KERNEL_RO);
+               for (i = 0; i < NR_FIX_ISAMAPS; i++)
+                       if (xen_start_info.flags & SIF_PRIVILEGED)
+                               set_fixmap(FIX_ISAMAP_BEGIN - i, i * PAGE_SIZE);
+                       else
+                               __set_fixmap(FIX_ISAMAP_BEGIN - i,
+                                            virt_to_machine(empty_zero_page),
+                                            PAGE_KERNEL_RO);
+       }
 #endif
 
 }
diff -r 6778d68a2c4c -r 5db799f4c40e 
linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup64.c
--- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup64.c     Wed Jul 13 
08:36:38 2005
+++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup64.c     Wed Jul 13 
08:37:38 2005
@@ -194,16 +194,10 @@
 {
        unsigned long efer;
 
-        /*     rdmsrl(MSR_EFER, efer);  */
-
-        /*
-         * At this point, Xen does not like the bit 63.
-         * So NX is not supported. Come back later.
-         */
-        efer = 0;
-
+       rdmsrl(MSR_EFER, efer); 
         if (!(efer & EFER_NX) || do_not_nx) { 
                 __supported_pte_mask &= ~_PAGE_NX; 
+
         }       
 }
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.