diff options
| -rw-r--r-- | arch/arm/xen/hypercall.S | 14 |
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 @@ | |||
| 48 | 48 | ||
| 49 | #include <linux/linkage.h> | 49 | #include <linux/linkage.h> |
| 50 | #include <asm/assembler.h> | 50 | #include <asm/assembler.h> |
| 51 | #include <asm/opcodes-virt.h> | ||
| 51 | #include <xen/interface/xen.h> | 52 | #include <xen/interface/xen.h> |
| 52 | 53 | ||
| 53 | 54 | ||
| 54 | /* HVC 0xEA1 */ | 55 | #define XEN_IMM 0xEA1 |
| 55 | #ifdef CONFIG_THUMB2_KERNEL | ||
| 56 | #define xen_hvc .word 0xf7e08ea1 | ||
| 57 | #else | ||
| 58 | #define xen_hvc .word 0xe140ea71 | ||
| 59 | #endif | ||
| 60 | 56 | ||
| 61 | #define HYPERCALL_SIMPLE(hypercall) \ | 57 | #define HYPERCALL_SIMPLE(hypercall) \ |
| 62 | ENTRY(HYPERVISOR_##hypercall) \ | 58 | ENTRY(HYPERVISOR_##hypercall) \ |
| 63 | mov r12, #__HYPERVISOR_##hypercall; \ | 59 | mov r12, #__HYPERVISOR_##hypercall; \ |
| 64 | xen_hvc; \ | 60 | __HVC(XEN_IMM); \ |
| 65 | mov pc, lr; \ | 61 | mov pc, lr; \ |
| 66 | ENDPROC(HYPERVISOR_##hypercall) | 62 | ENDPROC(HYPERVISOR_##hypercall) |
| 67 | 63 | ||
| @@ -76,7 +72,7 @@ ENTRY(HYPERVISOR_##hypercall) \ | |||
| 76 | stmdb sp!, {r4} \ | 72 | stmdb sp!, {r4} \ |
| 77 | ldr r4, [sp, #4] \ | 73 | ldr r4, [sp, #4] \ |
| 78 | mov r12, #__HYPERVISOR_##hypercall; \ | 74 | mov r12, #__HYPERVISOR_##hypercall; \ |
| 79 | xen_hvc \ | 75 | __HVC(XEN_IMM); \ |
| 80 | ldm sp!, {r4} \ | 76 | ldm sp!, {r4} \ |
| 81 | mov pc, lr \ | 77 | mov pc, lr \ |
| 82 | ENDPROC(HYPERVISOR_##hypercall) | 78 | ENDPROC(HYPERVISOR_##hypercall) |
| @@ -100,7 +96,7 @@ ENTRY(privcmd_call) | |||
| 100 | mov r2, r3 | 96 | mov r2, r3 |
| 101 | ldr r3, [sp, #8] | 97 | ldr r3, [sp, #8] |
| 102 | ldr r4, [sp, #4] | 98 | ldr r4, [sp, #4] |
| 103 | xen_hvc | 99 | __HVC(XEN_IMM) |
| 104 | ldm sp!, {r4} | 100 | ldm sp!, {r4} |
| 105 | mov pc, lr | 101 | mov pc, lr |
| 106 | ENDPROC(privcmd_call); | 102 | ENDPROC(privcmd_call); |
