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

[Xen-devel] [PATCH] linux/x86: make set_ldt() more consistent with native



As usual, written and tested on 2.6.24-rc8 and made apply to the 2.6.18
tree without further testing.

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

Index: head-2008-01-21/arch/i386/mm/hypervisor.c
===================================================================
--- head-2008-01-21.orig/arch/i386/mm/hypervisor.c      2008-01-21 
13:30:08.000000000 +0100
+++ head-2008-01-21/arch/i386/mm/hypervisor.c   2008-01-21 13:31:56.000000000 
+0100
@@ -182,12 +182,12 @@ void xen_pgd_unpin(unsigned long ptr)
        BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
 }
 
-void xen_set_ldt(unsigned long ptr, unsigned long len)
+void xen_set_ldt(const void *ptr, unsigned int ents)
 {
        struct mmuext_op op;
        op.cmd = MMUEXT_SET_LDT;
-       op.arg1.linear_addr = ptr;
-       op.arg2.nr_ents     = len;
+       op.arg1.linear_addr = (unsigned long)ptr;
+       op.arg2.nr_ents     = ents;
        BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
 }
 
Index: head-2008-01-21/include/asm-i386/mach-xen/asm/desc.h
===================================================================
--- head-2008-01-21.orig/include/asm-i386/mach-xen/asm/desc.h   2008-01-21 
13:31:43.000000000 +0100
+++ head-2008-01-21/include/asm-i386/mach-xen/asm/desc.h        2008-01-21 
13:31:56.000000000 +0100
@@ -140,7 +140,7 @@ static inline void clear_LDT(void)
         * it slows down context switching. Noone uses it anyway.
         */
        cpu = cpu;              /* XXX avoid compiler warning */
-       xen_set_ldt(0UL, 0);
+       xen_set_ldt(NULL, 0);
        put_cpu();
 }
 
@@ -160,7 +160,7 @@ static inline void load_LDT_nolock (mm_c
        if (likely(!count))
                segments = NULL;
 
-       xen_set_ldt((unsigned long)segments, count);
+       xen_set_ldt(segments, count);
 }
 
 static inline void load_LDT(mm_context_t *pc)
Index: head-2008-01-21/include/asm-x86_64/mach-xen/asm/desc.h
===================================================================
--- head-2008-01-21.orig/include/asm-x86_64/mach-xen/asm/desc.h 2008-01-21 
13:31:43.000000000 +0100
+++ head-2008-01-21/include/asm-x86_64/mach-xen/asm/desc.h      2008-01-21 
13:31:56.000000000 +0100
@@ -30,7 +30,7 @@ static inline void clear_LDT(void)
         * it slows down context switching. Noone uses it anyway.
         */
        cpu = cpu;              /* XXX avoid compiler warning */
-       xen_set_ldt(0UL, 0);
+       xen_set_ldt(NULL, 0);
        put_cpu();
 }
 
@@ -211,7 +211,7 @@ static inline void load_LDT_nolock (mm_c
        if (likely(!count))
                segments = NULL;
 
-       xen_set_ldt((unsigned long)segments, count);
+       xen_set_ldt(segments, count);
 }
 
 static inline void load_LDT(mm_context_t *pc)
Index: head-2008-01-21/include/asm-i386/mach-xen/asm/hypervisor.h
===================================================================
--- head-2008-01-21.orig/include/asm-i386/mach-xen/asm/hypervisor.h     
2008-01-21 13:31:43.000000000 +0100
+++ head-2008-01-21/include/asm-i386/mach-xen/asm/hypervisor.h  2008-01-21 
13:31:56.000000000 +0100
@@ -96,7 +96,7 @@ void xen_l4_entry_update(pgd_t *ptr, pgd
 void xen_pgd_pin(unsigned long ptr);
 void xen_pgd_unpin(unsigned long ptr);
 
-void xen_set_ldt(unsigned long ptr, unsigned long bytes);
+void xen_set_ldt(const void *ptr, unsigned int ents);
 
 #ifdef CONFIG_SMP
 #include <linux/cpumask.h>




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


 


Rackspace

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