diff options
author | Glauber de Oliveira Costa <gcosta@redhat.com> | 2008-01-30 07:31:13 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:31:13 -0500 |
commit | 75b8bb3e56ca09a467fbbe5229bc68627f7445be (patch) | |
tree | b0eba1d65eb2022fbda902c99edd066b1b3f34da /arch/x86/kernel/vmi_32.c | |
parent | 014b15be30c04622d130946ab7c0a9101b523a8a (diff) |
x86: change write_ldt_entry signature
this patch changes the signature of write_ldt_entry.
Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com>
CC: Zachary Amsden <zach@vmware.com>
CC: Jeremy Fitzhardinge <Jeremy.Fitzhardinge.citrix.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/vmi_32.c')
-rw-r--r-- | arch/x86/kernel/vmi_32.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/x86/kernel/vmi_32.c b/arch/x86/kernel/vmi_32.c index 21edd0d6eae5..10c46419d35d 100644 --- a/arch/x86/kernel/vmi_32.c +++ b/arch/x86/kernel/vmi_32.c | |||
@@ -64,6 +64,7 @@ static struct { | |||
64 | void (*set_tr)(u32 selector); | 64 | void (*set_tr)(u32 selector); |
65 | void (*write_idt_entry)(struct desc_struct *, int, u32, u32); | 65 | void (*write_idt_entry)(struct desc_struct *, int, u32, u32); |
66 | void (*write_gdt_entry)(struct desc_struct *, int, u32, u32); | 66 | void (*write_gdt_entry)(struct desc_struct *, int, u32, u32); |
67 | void (*write_ldt_entry)(struct desc_struct *, int, u32, u32); | ||
67 | void (*set_kernel_stack)(u32 selector, u32 sp0); | 68 | void (*set_kernel_stack)(u32 selector, u32 sp0); |
68 | void (*allocate_page)(u32, u32, u32, u32, u32); | 69 | void (*allocate_page)(u32, u32, u32, u32, u32); |
69 | void (*release_page)(u32, u32); | 70 | void (*release_page)(u32, u32); |
@@ -229,6 +230,13 @@ static void vmi_write_gdt_entry(struct desc_struct *dt, int entry, | |||
229 | vmi_ops.write_gdt_entry(dt, entry, gdt_entry[0], gdt_entry[2]); | 230 | vmi_ops.write_gdt_entry(dt, entry, gdt_entry[0], gdt_entry[2]); |
230 | } | 231 | } |
231 | 232 | ||
233 | static void vmi_write_ldt_entry(struct desc_struct *dt, int entry, | ||
234 | const void *desc) | ||
235 | { | ||
236 | u32 *ldt_entry = (u32 *)desc; | ||
237 | vmi_ops.write_idt_entry(dt, entry, ldt_entry[0], ldt_entry[2]); | ||
238 | } | ||
239 | |||
232 | static void vmi_load_sp0(struct tss_struct *tss, | 240 | static void vmi_load_sp0(struct tss_struct *tss, |
233 | struct thread_struct *thread) | 241 | struct thread_struct *thread) |
234 | { | 242 | { |
@@ -805,7 +813,8 @@ static inline int __init activate_vmi(void) | |||
805 | para_fill(pv_cpu_ops.store_idt, GetIDT); | 813 | para_fill(pv_cpu_ops.store_idt, GetIDT); |
806 | para_fill(pv_cpu_ops.store_tr, GetTR); | 814 | para_fill(pv_cpu_ops.store_tr, GetTR); |
807 | pv_cpu_ops.load_tls = vmi_load_tls; | 815 | pv_cpu_ops.load_tls = vmi_load_tls; |
808 | para_fill(pv_cpu_ops.write_ldt_entry, WriteLDTEntry); | 816 | para_wrap(pv_cpu_ops.write_ldt_entry, vmi_write_ldt_entry, |
817 | write_ldt_entry, WriteLDTEntry); | ||
809 | para_wrap(pv_cpu_ops.write_gdt_entry, vmi_write_gdt_entry, | 818 | para_wrap(pv_cpu_ops.write_gdt_entry, vmi_write_gdt_entry, |
810 | write_gdt_entry, WriteGDTEntry); | 819 | write_gdt_entry, WriteGDTEntry); |
811 | para_wrap(pv_cpu_ops.write_idt_entry, vmi_write_idt_entry, | 820 | para_wrap(pv_cpu_ops.write_idt_entry, vmi_write_idt_entry, |