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 /include | |
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 'include')
-rw-r--r-- | include/asm-x86/desc_32.h | 9 | ||||
-rw-r--r-- | include/asm-x86/desc_64.h | 7 | ||||
-rw-r--r-- | include/asm-x86/paravirt.h | 10 |
3 files changed, 16 insertions, 10 deletions
diff --git a/include/asm-x86/desc_32.h b/include/asm-x86/desc_32.h index 41d8214c6173..92a72b0381e2 100644 --- a/include/asm-x86/desc_32.h +++ b/include/asm-x86/desc_32.h | |||
@@ -69,12 +69,19 @@ static inline void pack_gate(gate_desc *gate, | |||
69 | #define load_TLS(t, cpu) native_load_tls(t, cpu) | 69 | #define load_TLS(t, cpu) native_load_tls(t, cpu) |
70 | #define set_ldt native_set_ldt | 70 | #define set_ldt native_set_ldt |
71 | 71 | ||
72 | #define write_ldt_entry(dt, entry, a, b) write_dt_entry(dt, entry, a, b) | 72 | #define write_ldt_entry(dt, entry, desc) \ |
73 | native_write_ldt_entry(dt, entry, desc) | ||
73 | #define write_gdt_entry(dt, entry, desc, type) \ | 74 | #define write_gdt_entry(dt, entry, desc, type) \ |
74 | native_write_gdt_entry(dt, entry, desc, type) | 75 | native_write_gdt_entry(dt, entry, desc, type) |
75 | #define write_idt_entry(dt, entry, g) native_write_idt_entry(dt, entry, g) | 76 | #define write_idt_entry(dt, entry, g) native_write_idt_entry(dt, entry, g) |
76 | #endif | 77 | #endif |
77 | 78 | ||
79 | static inline void native_write_ldt_entry(struct desc_struct *ldt, int entry, | ||
80 | const void *desc) | ||
81 | { | ||
82 | memcpy(&ldt[entry], desc, sizeof(struct desc_struct)); | ||
83 | } | ||
84 | |||
78 | static inline void native_write_idt_entry(gate_desc *idt, int entry, | 85 | static inline void native_write_idt_entry(gate_desc *idt, int entry, |
79 | const gate_desc *gate) | 86 | const gate_desc *gate) |
80 | { | 87 | { |
diff --git a/include/asm-x86/desc_64.h b/include/asm-x86/desc_64.h index ba7fb87d10f3..7cdd3f0420fd 100644 --- a/include/asm-x86/desc_64.h +++ b/include/asm-x86/desc_64.h | |||
@@ -34,12 +34,9 @@ extern gate_desc idt_table[]; | |||
34 | extern struct desc_ptr cpu_gdt_descr[]; | 34 | extern struct desc_ptr cpu_gdt_descr[]; |
35 | 35 | ||
36 | static inline void write_ldt_entry(struct desc_struct *ldt, | 36 | static inline void write_ldt_entry(struct desc_struct *ldt, |
37 | int entry, u32 entry_low, u32 entry_high) | 37 | int entry, void *ptr) |
38 | { | 38 | { |
39 | __u32 *lp = (__u32 *)((entry << 3) + (char *)ldt); | 39 | memcpy(&ldt[entry], ptr, 8); |
40 | |||
41 | lp[0] = entry_low; | ||
42 | lp[1] = entry_high; | ||
43 | } | 40 | } |
44 | 41 | ||
45 | /* the cpu gdt accessor */ | 42 | /* the cpu gdt accessor */ |
diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h index 3f2abf295e2a..4f23f434a1f3 100644 --- a/include/asm-x86/paravirt.h +++ b/include/asm-x86/paravirt.h | |||
@@ -96,8 +96,8 @@ struct pv_cpu_ops { | |||
96 | void (*set_ldt)(const void *desc, unsigned entries); | 96 | void (*set_ldt)(const void *desc, unsigned entries); |
97 | unsigned long (*store_tr)(void); | 97 | unsigned long (*store_tr)(void); |
98 | void (*load_tls)(struct thread_struct *t, unsigned int cpu); | 98 | void (*load_tls)(struct thread_struct *t, unsigned int cpu); |
99 | void (*write_ldt_entry)(struct desc_struct *, | 99 | void (*write_ldt_entry)(struct desc_struct *ldt, int entrynum, |
100 | int entrynum, u32 low, u32 high); | 100 | const void *desc); |
101 | void (*write_gdt_entry)(struct desc_struct *, | 101 | void (*write_gdt_entry)(struct desc_struct *, |
102 | int entrynum, const void *desc, int size); | 102 | int entrynum, const void *desc, int size); |
103 | void (*write_idt_entry)(gate_desc *, | 103 | void (*write_idt_entry)(gate_desc *, |
@@ -660,9 +660,11 @@ static inline void load_TLS(struct thread_struct *t, unsigned cpu) | |||
660 | { | 660 | { |
661 | PVOP_VCALL2(pv_cpu_ops.load_tls, t, cpu); | 661 | PVOP_VCALL2(pv_cpu_ops.load_tls, t, cpu); |
662 | } | 662 | } |
663 | static inline void write_ldt_entry(void *dt, int entry, u32 low, u32 high) | 663 | |
664 | static inline void write_ldt_entry(struct desc_struct *dt, int entry, | ||
665 | const void *desc) | ||
664 | { | 666 | { |
665 | PVOP_VCALL4(pv_cpu_ops.write_ldt_entry, dt, entry, low, high); | 667 | PVOP_VCALL3(pv_cpu_ops.write_ldt_entry, dt, entry, desc); |
666 | } | 668 | } |
667 | 669 | ||
668 | static inline void write_gdt_entry(struct desc_struct *dt, int entry, | 670 | static inline void write_gdt_entry(struct desc_struct *dt, int entry, |