aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/ia32
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2008-06-25 00:19:29 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-08 07:15:55 -0400
commit6680415481c7bd38967cf7488787f509f17ba307 (patch)
treeddbabcbbba8e126c2262203d55e7c0d4c288125e /arch/x86/ia32
parent2be29982a08009c731307f4a39053b70ac4700da (diff)
x86, 64-bit: ia32entry: replace privileged instructions with pvops
Replace privileged instructions with the corresponding pvops in ia32entry.S. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Cc: xen-devel <xen-devel@lists.xensource.com> Cc: Stephen Tweedie <sct@redhat.com> Cc: Eduardo Habkost <ehabkost@redhat.com> Cc: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/ia32')
-rw-r--r--arch/x86/ia32/ia32entry.S16
1 files changed, 8 insertions, 8 deletions
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
index 2a4c42427d9a..9740b6a2df35 100644
--- a/arch/x86/ia32/ia32entry.S
+++ b/arch/x86/ia32/ia32entry.S
@@ -98,14 +98,14 @@ ENTRY(ia32_sysenter_target)
98 CFI_SIGNAL_FRAME 98 CFI_SIGNAL_FRAME
99 CFI_DEF_CFA rsp,0 99 CFI_DEF_CFA rsp,0
100 CFI_REGISTER rsp,rbp 100 CFI_REGISTER rsp,rbp
101 swapgs 101 SWAPGS
102 movq %gs:pda_kernelstack, %rsp 102 movq %gs:pda_kernelstack, %rsp
103 addq $(PDA_STACKOFFSET),%rsp 103 addq $(PDA_STACKOFFSET),%rsp
104 /* 104 /*
105 * No need to follow this irqs on/off section: the syscall 105 * No need to follow this irqs on/off section: the syscall
106 * disabled irqs, here we enable it straight after entry: 106 * disabled irqs, here we enable it straight after entry:
107 */ 107 */
108 sti 108 ENABLE_INTERRUPTS(CLBR_NONE)
109 movl %ebp,%ebp /* zero extension */ 109 movl %ebp,%ebp /* zero extension */
110 pushq $__USER32_DS 110 pushq $__USER32_DS
111 CFI_ADJUST_CFA_OFFSET 8 111 CFI_ADJUST_CFA_OFFSET 8
@@ -147,7 +147,7 @@ sysenter_do_call:
147 call *ia32_sys_call_table(,%rax,8) 147 call *ia32_sys_call_table(,%rax,8)
148 movq %rax,RAX-ARGOFFSET(%rsp) 148 movq %rax,RAX-ARGOFFSET(%rsp)
149 GET_THREAD_INFO(%r10) 149 GET_THREAD_INFO(%r10)
150 cli 150 DISABLE_INTERRUPTS(CLBR_NONE)
151 TRACE_IRQS_OFF 151 TRACE_IRQS_OFF
152 testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10) 152 testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10)
153 jnz int_ret_from_sys_call 153 jnz int_ret_from_sys_call
@@ -210,7 +210,7 @@ ENTRY(ia32_cstar_target)
210 CFI_DEF_CFA rsp,PDA_STACKOFFSET 210 CFI_DEF_CFA rsp,PDA_STACKOFFSET
211 CFI_REGISTER rip,rcx 211 CFI_REGISTER rip,rcx
212 /*CFI_REGISTER rflags,r11*/ 212 /*CFI_REGISTER rflags,r11*/
213 swapgs 213 SWAPGS
214 movl %esp,%r8d 214 movl %esp,%r8d
215 CFI_REGISTER rsp,r8 215 CFI_REGISTER rsp,r8
216 movq %gs:pda_kernelstack,%rsp 216 movq %gs:pda_kernelstack,%rsp
@@ -218,7 +218,7 @@ ENTRY(ia32_cstar_target)
218 * No need to follow this irqs on/off section: the syscall 218 * No need to follow this irqs on/off section: the syscall
219 * disabled irqs and here we enable it straight after entry: 219 * disabled irqs and here we enable it straight after entry:
220 */ 220 */
221 sti 221 ENABLE_INTERRUPTS(CLBR_NONE)
222 SAVE_ARGS 8,1,1 222 SAVE_ARGS 8,1,1
223 movl %eax,%eax /* zero extension */ 223 movl %eax,%eax /* zero extension */
224 movq %rax,ORIG_RAX-ARGOFFSET(%rsp) 224 movq %rax,ORIG_RAX-ARGOFFSET(%rsp)
@@ -251,7 +251,7 @@ cstar_do_call:
251 call *ia32_sys_call_table(,%rax,8) 251 call *ia32_sys_call_table(,%rax,8)
252 movq %rax,RAX-ARGOFFSET(%rsp) 252 movq %rax,RAX-ARGOFFSET(%rsp)
253 GET_THREAD_INFO(%r10) 253 GET_THREAD_INFO(%r10)
254 cli 254 DISABLE_INTERRUPTS(CLBR_NONE)
255 TRACE_IRQS_OFF 255 TRACE_IRQS_OFF
256 testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10) 256 testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10)
257 jnz int_ret_from_sys_call 257 jnz int_ret_from_sys_call
@@ -319,12 +319,12 @@ ENTRY(ia32_syscall)
319 /*CFI_REL_OFFSET rflags,EFLAGS-RIP*/ 319 /*CFI_REL_OFFSET rflags,EFLAGS-RIP*/
320 /*CFI_REL_OFFSET cs,CS-RIP*/ 320 /*CFI_REL_OFFSET cs,CS-RIP*/
321 CFI_REL_OFFSET rip,RIP-RIP 321 CFI_REL_OFFSET rip,RIP-RIP
322 swapgs 322 SWAPGS
323 /* 323 /*
324 * No need to follow this irqs on/off section: the syscall 324 * No need to follow this irqs on/off section: the syscall
325 * disabled irqs and here we enable it straight after entry: 325 * disabled irqs and here we enable it straight after entry:
326 */ 326 */
327 sti 327 ENABLE_INTERRUPTS(CLBR_NONE)
328 movl %eax,%eax 328 movl %eax,%eax
329 pushq %rax 329 pushq %rax
330 CFI_ADJUST_CFA_OFFSET 8 330 CFI_ADJUST_CFA_OFFSET 8