aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/xen/xen-asm.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/xen/xen-asm.S')
-rw-r--r--arch/x86/xen/xen-asm.S10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
index 3e45aa000718..eff224df813f 100644
--- a/arch/x86/xen/xen-asm.S
+++ b/arch/x86/xen/xen-asm.S
@@ -14,6 +14,7 @@
14#include <asm/asm-offsets.h> 14#include <asm/asm-offsets.h>
15#include <asm/percpu.h> 15#include <asm/percpu.h>
16#include <asm/processor-flags.h> 16#include <asm/processor-flags.h>
17#include <asm/frame.h>
17 18
18#include "xen-asm.h" 19#include "xen-asm.h"
19 20
@@ -23,6 +24,7 @@
23 * then enter the hypervisor to get them handled. 24 * then enter the hypervisor to get them handled.
24 */ 25 */
25ENTRY(xen_irq_enable_direct) 26ENTRY(xen_irq_enable_direct)
27 FRAME_BEGIN
26 /* Unmask events */ 28 /* Unmask events */
27 movb $0, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask 29 movb $0, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask
28 30
@@ -39,6 +41,7 @@ ENTRY(xen_irq_enable_direct)
392: call check_events 412: call check_events
401: 421:
41ENDPATCH(xen_irq_enable_direct) 43ENDPATCH(xen_irq_enable_direct)
44 FRAME_END
42 ret 45 ret
43 ENDPROC(xen_irq_enable_direct) 46 ENDPROC(xen_irq_enable_direct)
44 RELOC(xen_irq_enable_direct, 2b+1) 47 RELOC(xen_irq_enable_direct, 2b+1)
@@ -82,6 +85,7 @@ ENDPATCH(xen_save_fl_direct)
82 * enters the hypervisor to get them delivered if so. 85 * enters the hypervisor to get them delivered if so.
83 */ 86 */
84ENTRY(xen_restore_fl_direct) 87ENTRY(xen_restore_fl_direct)
88 FRAME_BEGIN
85#ifdef CONFIG_X86_64 89#ifdef CONFIG_X86_64
86 testw $X86_EFLAGS_IF, %di 90 testw $X86_EFLAGS_IF, %di
87#else 91#else
@@ -100,6 +104,7 @@ ENTRY(xen_restore_fl_direct)
1002: call check_events 1042: call check_events
1011: 1051:
102ENDPATCH(xen_restore_fl_direct) 106ENDPATCH(xen_restore_fl_direct)
107 FRAME_END
103 ret 108 ret
104 ENDPROC(xen_restore_fl_direct) 109 ENDPROC(xen_restore_fl_direct)
105 RELOC(xen_restore_fl_direct, 2b+1) 110 RELOC(xen_restore_fl_direct, 2b+1)
@@ -109,7 +114,8 @@ ENDPATCH(xen_restore_fl_direct)
109 * Force an event check by making a hypercall, but preserve regs 114 * Force an event check by making a hypercall, but preserve regs
110 * before making the call. 115 * before making the call.
111 */ 116 */
112check_events: 117ENTRY(check_events)
118 FRAME_BEGIN
113#ifdef CONFIG_X86_32 119#ifdef CONFIG_X86_32
114 push %eax 120 push %eax
115 push %ecx 121 push %ecx
@@ -139,4 +145,6 @@ check_events:
139 pop %rcx 145 pop %rcx
140 pop %rax 146 pop %rax
141#endif 147#endif
148 FRAME_END
142 ret 149 ret
150ENDPROC(check_events)