summaryrefslogtreecommitdiff
path: root/arch/arm/xen/hypercall.S
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-11-16 18:21:36 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-11-16 18:21:36 -0800
commit98c4514ff6e3072288770db66f91bdb15af8b433 (patch)
treeeb5f2541e70d27144720e1735b463471025908f0 /arch/arm/xen/hypercall.S
parent644a9d3b66e6983c2c1f3b24c3006d49b184c871 (diff)
parentf4a75d2eb7b1e2206094b901be09adb31ba63681 (diff)
downloadlinux-next-98c4514ff6e3072288770db66f91bdb15af8b433.tar.gz
Merge 3.7-rc6 into char-misc-next
Diffstat (limited to 'arch/arm/xen/hypercall.S')
-rw-r--r--arch/arm/xen/hypercall.S14
1 files changed, 5 insertions, 9 deletions
diff --git a/arch/arm/xen/hypercall.S b/arch/arm/xen/hypercall.S
index 074f5ed101b9..71f723984cbd 100644
--- a/arch/arm/xen/hypercall.S
+++ b/arch/arm/xen/hypercall.S
@@ -48,20 +48,16 @@
#include <linux/linkage.h>
#include <asm/assembler.h>
+#include <asm/opcodes-virt.h>
#include <xen/interface/xen.h>
-/* HVC 0xEA1 */
-#ifdef CONFIG_THUMB2_KERNEL
-#define xen_hvc .word 0xf7e08ea1
-#else
-#define xen_hvc .word 0xe140ea71
-#endif
+#define XEN_IMM 0xEA1
#define HYPERCALL_SIMPLE(hypercall) \
ENTRY(HYPERVISOR_##hypercall) \
mov r12, #__HYPERVISOR_##hypercall; \
- xen_hvc; \
+ __HVC(XEN_IMM); \
mov pc, lr; \
ENDPROC(HYPERVISOR_##hypercall)
@@ -76,7 +72,7 @@ ENTRY(HYPERVISOR_##hypercall) \
stmdb sp!, {r4} \
ldr r4, [sp, #4] \
mov r12, #__HYPERVISOR_##hypercall; \
- xen_hvc \
+ __HVC(XEN_IMM); \
ldm sp!, {r4} \
mov pc, lr \
ENDPROC(HYPERVISOR_##hypercall)
@@ -100,7 +96,7 @@ ENTRY(privcmd_call)
mov r2, r3
ldr r3, [sp, #8]
ldr r4, [sp, #4]
- xen_hvc
+ __HVC(XEN_IMM)
ldm sp!, {r4}
mov pc, lr
ENDPROC(privcmd_call);