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>
This commit is contained in:
committed by
Ingo Molnar
parent
2be29982a0
commit
6680415481
@@ -98,14 +98,14 @@ ENTRY(ia32_sysenter_target)
|
|||||||
CFI_SIGNAL_FRAME
|
CFI_SIGNAL_FRAME
|
||||||
CFI_DEF_CFA rsp,0
|
CFI_DEF_CFA rsp,0
|
||||||
CFI_REGISTER rsp,rbp
|
CFI_REGISTER rsp,rbp
|
||||||
swapgs
|
SWAPGS
|
||||||
movq %gs:pda_kernelstack, %rsp
|
movq %gs:pda_kernelstack, %rsp
|
||||||
addq $(PDA_STACKOFFSET),%rsp
|
addq $(PDA_STACKOFFSET),%rsp
|
||||||
/*
|
/*
|
||||||
* No need to follow this irqs on/off section: the syscall
|
* No need to follow this irqs on/off section: the syscall
|
||||||
* disabled irqs, here we enable it straight after entry:
|
* disabled irqs, here we enable it straight after entry:
|
||||||
*/
|
*/
|
||||||
sti
|
ENABLE_INTERRUPTS(CLBR_NONE)
|
||||||
movl %ebp,%ebp /* zero extension */
|
movl %ebp,%ebp /* zero extension */
|
||||||
pushq $__USER32_DS
|
pushq $__USER32_DS
|
||||||
CFI_ADJUST_CFA_OFFSET 8
|
CFI_ADJUST_CFA_OFFSET 8
|
||||||
@@ -147,7 +147,7 @@ sysenter_do_call:
|
|||||||
call *ia32_sys_call_table(,%rax,8)
|
call *ia32_sys_call_table(,%rax,8)
|
||||||
movq %rax,RAX-ARGOFFSET(%rsp)
|
movq %rax,RAX-ARGOFFSET(%rsp)
|
||||||
GET_THREAD_INFO(%r10)
|
GET_THREAD_INFO(%r10)
|
||||||
cli
|
DISABLE_INTERRUPTS(CLBR_NONE)
|
||||||
TRACE_IRQS_OFF
|
TRACE_IRQS_OFF
|
||||||
testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10)
|
testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10)
|
||||||
jnz int_ret_from_sys_call
|
jnz int_ret_from_sys_call
|
||||||
@@ -210,7 +210,7 @@ ENTRY(ia32_cstar_target)
|
|||||||
CFI_DEF_CFA rsp,PDA_STACKOFFSET
|
CFI_DEF_CFA rsp,PDA_STACKOFFSET
|
||||||
CFI_REGISTER rip,rcx
|
CFI_REGISTER rip,rcx
|
||||||
/*CFI_REGISTER rflags,r11*/
|
/*CFI_REGISTER rflags,r11*/
|
||||||
swapgs
|
SWAPGS
|
||||||
movl %esp,%r8d
|
movl %esp,%r8d
|
||||||
CFI_REGISTER rsp,r8
|
CFI_REGISTER rsp,r8
|
||||||
movq %gs:pda_kernelstack,%rsp
|
movq %gs:pda_kernelstack,%rsp
|
||||||
@@ -218,7 +218,7 @@ ENTRY(ia32_cstar_target)
|
|||||||
* No need to follow this irqs on/off section: the syscall
|
* No need to follow this irqs on/off section: the syscall
|
||||||
* disabled irqs and here we enable it straight after entry:
|
* disabled irqs and here we enable it straight after entry:
|
||||||
*/
|
*/
|
||||||
sti
|
ENABLE_INTERRUPTS(CLBR_NONE)
|
||||||
SAVE_ARGS 8,1,1
|
SAVE_ARGS 8,1,1
|
||||||
movl %eax,%eax /* zero extension */
|
movl %eax,%eax /* zero extension */
|
||||||
movq %rax,ORIG_RAX-ARGOFFSET(%rsp)
|
movq %rax,ORIG_RAX-ARGOFFSET(%rsp)
|
||||||
@@ -251,7 +251,7 @@ cstar_do_call:
|
|||||||
call *ia32_sys_call_table(,%rax,8)
|
call *ia32_sys_call_table(,%rax,8)
|
||||||
movq %rax,RAX-ARGOFFSET(%rsp)
|
movq %rax,RAX-ARGOFFSET(%rsp)
|
||||||
GET_THREAD_INFO(%r10)
|
GET_THREAD_INFO(%r10)
|
||||||
cli
|
DISABLE_INTERRUPTS(CLBR_NONE)
|
||||||
TRACE_IRQS_OFF
|
TRACE_IRQS_OFF
|
||||||
testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10)
|
testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10)
|
||||||
jnz int_ret_from_sys_call
|
jnz int_ret_from_sys_call
|
||||||
@@ -319,12 +319,12 @@ ENTRY(ia32_syscall)
|
|||||||
/*CFI_REL_OFFSET rflags,EFLAGS-RIP*/
|
/*CFI_REL_OFFSET rflags,EFLAGS-RIP*/
|
||||||
/*CFI_REL_OFFSET cs,CS-RIP*/
|
/*CFI_REL_OFFSET cs,CS-RIP*/
|
||||||
CFI_REL_OFFSET rip,RIP-RIP
|
CFI_REL_OFFSET rip,RIP-RIP
|
||||||
swapgs
|
SWAPGS
|
||||||
/*
|
/*
|
||||||
* No need to follow this irqs on/off section: the syscall
|
* No need to follow this irqs on/off section: the syscall
|
||||||
* disabled irqs and here we enable it straight after entry:
|
* disabled irqs and here we enable it straight after entry:
|
||||||
*/
|
*/
|
||||||
sti
|
ENABLE_INTERRUPTS(CLBR_NONE)
|
||||||
movl %eax,%eax
|
movl %eax,%eax
|
||||||
pushq %rax
|
pushq %rax
|
||||||
CFI_ADJUST_CFA_OFFSET 8
|
CFI_ADJUST_CFA_OFFSET 8
|
||||||
|
Reference in New Issue
Block a user