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

[Xen-changelog] [linux-2.6.18-xen] xen: add privileged/unprivileged kernel feature indication



# HG changeset patch
# User Jan Beulich <jbeulich@xxxxxxxxxx>
# Date 1310110587 -3600
# Node ID 0fc6424770c824541d4ea85231ba65d80c70202a
# Parent  3c900d6a5f6a51ff1547f21fef30ab8b92feccc9
xen: add privileged/unprivileged kernel feature indication

This is the kernel side change accompanying the earlier sent Xen side
patch titled identically.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
---


diff -r 3c900d6a5f6a -r 0fc6424770c8 arch/i386/kernel/head-xen.S
--- a/arch/i386/kernel/head-xen.S       Thu Jun 23 11:14:00 2011 +0100
+++ b/arch/i386/kernel/head-xen.S       Fri Jul 08 08:36:27 2011 +0100
@@ -142,6 +142,12 @@
        .quad 0x0000000000000000        /* 0xf0 - unused */
        .quad 0x0000000000000000        /* 0xf8 - GDT entry 31: double-fault 
TSS */
 
+#ifdef CONFIG_XEN_UNPRIVILEGED_GUEST
+# define XEN_PRIV_CAP "!unprivileged"
+#else
+# define XEN_PRIV_CAP "privileged|unprivileged"
+#endif
+
 #if CONFIG_XEN_COMPAT <= 0x030002
 /*
  * __xen_guest information
@@ -168,7 +174,8 @@
                utoa (__PAGE_OFFSET + __PHYSICAL_START + VIRT_ENTRY_OFFSET)
        .ascii  ",HYPERCALL_PAGE=0x"
                utoa ((__PHYSICAL_START+HYPERCALL_PAGE_OFFSET)>>PAGE_SHIFT)
-       .ascii  ",FEATURES=writable_page_tables"
+       .ascii  ",FEATURES=" XEN_PRIV_CAP
+       .ascii           "|writable_page_tables"
        .ascii           "|writable_descriptor_tables"
        .ascii           "|auto_translated_physmap"
        .ascii           "|pae_pgdir_above_4gb"
@@ -195,7 +202,12 @@
        ELFNOTE(Xen, XEN_ELFNOTE_ENTRY,          .long,  startup_32)
        ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, .long,  hypercall_page)
        ELFNOTE(Xen, XEN_ELFNOTE_HV_START_LOW,   .long,  HYPERVISOR_VIRT_START)
-       ELFNOTE(Xen, XEN_ELFNOTE_FEATURES,       .asciz, 
"writable_page_tables|writable_descriptor_tables|auto_translated_physmap|pae_pgdir_above_4gb|supervisor_mode_kernel")
+       ELFNOTE(Xen, XEN_ELFNOTE_FEATURES,       .ascii, XEN_PRIV_CAP;
+                                                .ascii  
"|writable_page_tables";
+                                                .ascii  
"|writable_descriptor_tables";
+                                                .ascii  
"|auto_translated_physmap";
+                                                .ascii  "|pae_pgdir_above_4gb";
+                                                .asciz  
"|supervisor_mode_kernel")
 #ifdef CONFIG_X86_PAE
        ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE,       .asciz, "yes")
        ELFNOTE(Xen, XEN_ELFNOTE_L1_MFN_VALID,   .quad,  
_PAGE_PRESENT,_PAGE_PRESENT)
diff -r 3c900d6a5f6a -r 0fc6424770c8 arch/x86_64/kernel/head-xen.S
--- a/arch/x86_64/kernel/head-xen.S     Thu Jun 23 11:14:00 2011 +0100
+++ b/arch/x86_64/kernel/head-xen.S     Fri Jul 08 08:36:27 2011 +0100
@@ -160,6 +160,12 @@
 ENTRY(empty_zero_page)
        .skip PAGE_SIZE
 
+#ifdef CONFIG_XEN_UNPRIVILEGED_GUEST
+# define XEN_PRIV_CAP "!unprivileged"
+#else
+# define XEN_PRIV_CAP "privileged|unprivileged"
+#endif
+
 #if CONFIG_XEN_COMPAT <= 0x030002
 /*
  * __xen_guest information
@@ -186,7 +192,8 @@
                utoh (__START_KERNEL_map + __PHYSICAL_START)
        .ascii  ",HYPERCALL_PAGE=0x"
                utoh (phys_hypercall_page >> PAGE_SHIFT)
-       .ascii  ",FEATURES=writable_page_tables"
+       .ascii  ",FEATURES=" XEN_PRIV_CAP
+       .ascii           "|writable_page_tables"
        .ascii           "|writable_descriptor_tables"
        .ascii           "|auto_translated_physmap"
        .ascii           "|supervisor_mode_kernel"
@@ -206,6 +213,10 @@
        ELFNOTE(Xen, XEN_ELFNOTE_ENTRY,          .quad,  startup_64)
        ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, .quad,  hypercall_page)
        ELFNOTE(Xen, XEN_ELFNOTE_L1_MFN_VALID,   .quad,  
_PAGE_PRESENT,_PAGE_PRESENT)
-       ELFNOTE(Xen, XEN_ELFNOTE_FEATURES,       .asciz, 
"writable_page_tables|writable_descriptor_tables|auto_translated_physmap|supervisor_mode_kernel")
+       ELFNOTE(Xen, XEN_ELFNOTE_FEATURES,       .ascii, XEN_PRIV_CAP;
+                                                .ascii "|writable_page_tables";
+                                                .ascii 
"|writable_descriptor_tables";
+                                                .ascii 
"|auto_translated_physmap";
+                                                .asciz 
"|supervisor_mode_kernel")
        ELFNOTE(Xen, XEN_ELFNOTE_LOADER,         .asciz, "generic")
        ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long,  1)

_______________________________________________
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®.