/[pkg-src]/trunk/kernel26-xen/patches-2.6.25-r1/1017-2.6.25-xen-x86_64-Only-define-load_user_cs_desc-on-32-bi.patch |
Annotation of /trunk/kernel26-xen/patches-2.6.25-r1/1017-2.6.25-xen-x86_64-Only-define-load_user_cs_desc-on-32-bi.patch
Parent Directory | Revision Log
Revision 606 -
(hide annotations)
(download)
Thu May 22 23:13:13 2008 UTC (16 years ago) by niro
File size: 4006 byte(s)
Thu May 22 23:13:13 2008 UTC (16 years ago) by niro
File size: 4006 byte(s)
-ver bump to 2.6.25-magellan-r1: - linux-2.6.25.4 - fbcondecor-0.9.4 - squashfs-3.3 - unionfs-2.3.3 - tuxonice-3.0-rc7 - linux-phc-0.3.0 - acpi-dstd-0.9a - reiser4 - xen-3.2.0 . ipw3945-1.2.2
1 | niro | 606 | From 9376fdccd81414dacc8db02b81bba632da0efad1 Mon Sep 17 00:00:00 2001 |
2 | From: Mark McLoughlin <markmc@redhat.com> | ||
3 | Date: Tue, 25 Mar 2008 11:56:43 +0000 | ||
4 | Subject: [PATCH] xen x86_64: Only define load_user_cs_desc() on 32 bit | ||
5 | |||
6 | load_user_cs_desc() is only used on 32 bit, so only | ||
7 | define it in that case. | ||
8 | |||
9 | Fixes compile failure in native_load_user_cs_desc() | ||
10 | since mm_context_t->user_cs is only available on | ||
11 | 32 bit. | ||
12 | |||
13 | Signed-off-by: Mark McLoughlin <markmc@redhat.com> | ||
14 | --- | ||
15 | arch/x86/kernel/paravirt.c | 2 ++ | ||
16 | arch/x86/xen/enlighten.c | 4 ++++ | ||
17 | include/asm-x86/desc.h | 4 ++++ | ||
18 | include/asm-x86/paravirt.h | 4 ++++ | ||
19 | 4 files changed, 14 insertions(+), 0 deletions(-) | ||
20 | |||
21 | diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c | ||
22 | index d59db07..c845947 100644 | ||
23 | --- a/arch/x86/kernel/paravirt.c | ||
24 | +++ b/arch/x86/kernel/paravirt.c | ||
25 | @@ -331,7 +331,9 @@ struct pv_cpu_ops pv_cpu_ops = { | ||
26 | .read_tscp = native_read_tscp, | ||
27 | .load_tr_desc = native_load_tr_desc, | ||
28 | .set_ldt = native_set_ldt, | ||
29 | +#ifdef CONFIG_X86_32 | ||
30 | .load_user_cs_desc = native_load_user_cs_desc, | ||
31 | +#endif | ||
32 | .load_gdt = native_load_gdt, | ||
33 | .load_idt = native_load_idt, | ||
34 | .store_gdt = native_store_gdt, | ||
35 | diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c | ||
36 | index a5b111d..907567d 100644 | ||
37 | --- a/arch/x86/xen/enlighten.c | ||
38 | +++ b/arch/x86/xen/enlighten.c | ||
39 | @@ -291,6 +291,7 @@ static void xen_set_ldt(const void *addr, unsigned entries) | ||
40 | xen_mc_issue(PARAVIRT_LAZY_CPU); | ||
41 | } | ||
42 | |||
43 | +#ifdef CONFIG_X86_32 | ||
44 | static inline void xen_load_user_cs_desc(int cpu, struct mm_struct *mm) | ||
45 | { | ||
46 | void *gdt; | ||
47 | @@ -306,6 +307,7 @@ static inline void xen_load_user_cs_desc(int cpu, struct mm_struct *mm) | ||
48 | |||
49 | HYPERVISOR_update_descriptor(mgdt.maddr, descriptor); | ||
50 | } | ||
51 | +#endif | ||
52 | |||
53 | static void xen_load_gdt(const struct desc_ptr *dtr) | ||
54 | { | ||
55 | @@ -1015,7 +1017,9 @@ static const struct pv_cpu_ops xen_cpu_ops __initdata = { | ||
56 | |||
57 | .load_tr_desc = paravirt_nop, | ||
58 | .set_ldt = xen_set_ldt, | ||
59 | +#ifdef CONFIG_X86_32 | ||
60 | .load_user_cs_desc = xen_load_user_cs_desc, | ||
61 | +#endif | ||
62 | .load_gdt = xen_load_gdt, | ||
63 | .load_idt = xen_load_idt, | ||
64 | .load_tls = xen_load_tls, | ||
65 | diff --git a/include/asm-x86/desc.h b/include/asm-x86/desc.h | ||
66 | index ec3a84a..9b280be 100644 | ||
67 | --- a/include/asm-x86/desc.h | ||
68 | +++ b/include/asm-x86/desc.h | ||
69 | @@ -95,7 +95,9 @@ static inline int desc_empty(const void *ptr) | ||
70 | |||
71 | #define load_TLS(t, cpu) native_load_tls(t, cpu) | ||
72 | #define set_ldt native_set_ldt | ||
73 | +#ifdef CONFIG_X86_32 | ||
74 | #define load_user_cs_desc native_load_user_cs_desc | ||
75 | +#endif | ||
76 | |||
77 | #define write_ldt_entry(dt, entry, desc) \ | ||
78 | native_write_ldt_entry(dt, entry, desc) | ||
79 | @@ -362,10 +364,12 @@ static inline void set_user_cs(struct desc_struct *desc, unsigned long limit) | ||
80 | desc->b = (limit & 0xf0000) | 0x00c0fb00; | ||
81 | } | ||
82 | |||
83 | +#ifdef CONFIG_X86_32 | ||
84 | static inline void native_load_user_cs_desc(int cpu, struct mm_struct *mm) | ||
85 | { | ||
86 | get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS] = mm->context.user_cs; | ||
87 | } | ||
88 | +#endif | ||
89 | |||
90 | #ifdef CONFIG_X86_32 | ||
91 | extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit); | ||
92 | diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h | ||
93 | index ff8d218..7d7070a 100644 | ||
94 | --- a/include/asm-x86/paravirt.h | ||
95 | +++ b/include/asm-x86/paravirt.h | ||
96 | @@ -113,7 +113,9 @@ struct pv_cpu_ops { | ||
97 | void (*store_gdt)(struct desc_ptr *); | ||
98 | void (*store_idt)(struct desc_ptr *); | ||
99 | void (*set_ldt)(const void *desc, unsigned entries); | ||
100 | +#ifdef CONFIG_X86_32 | ||
101 | void (*load_user_cs_desc)(int cpu, struct mm_struct *mm); | ||
102 | +#endif | ||
103 | unsigned long (*store_tr)(void); | ||
104 | void (*load_tls)(struct thread_struct *t, unsigned int cpu); | ||
105 | void (*write_ldt_entry)(struct desc_struct *ldt, int entrynum, | ||
106 | @@ -755,11 +757,13 @@ static inline void set_ldt(const void *addr, unsigned entries) | ||
107 | { | ||
108 | PVOP_VCALL2(pv_cpu_ops.set_ldt, addr, entries); | ||
109 | } | ||
110 | +#ifdef CONFIG_X86_32 | ||
111 | static inline void load_user_cs_desc(unsigned int cpu, | ||
112 | struct mm_struct *mm) | ||
113 | { | ||
114 | PVOP_VCALL2(pv_cpu_ops.load_user_cs_desc, cpu, mm); | ||
115 | } | ||
116 | +#endif | ||
117 | static inline void store_gdt(struct desc_ptr *dtr) | ||
118 | { | ||
119 | PVOP_VCALL1(pv_cpu_ops.store_gdt, dtr); | ||
120 | -- | ||
121 | 1.5.4.1 | ||
122 |