diff options
-rw-r--r-- | arch/x86/include/asm/vmware.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/x86/include/asm/vmware.h b/arch/x86/include/asm/vmware.h index 3caac90f9761..ac9fc51e2b18 100644 --- a/arch/x86/include/asm/vmware.h +++ b/arch/x86/include/asm/vmware.h | |||
@@ -4,6 +4,7 @@ | |||
4 | 4 | ||
5 | #include <asm/cpufeatures.h> | 5 | #include <asm/cpufeatures.h> |
6 | #include <asm/alternative.h> | 6 | #include <asm/alternative.h> |
7 | #include <linux/stringify.h> | ||
7 | 8 | ||
8 | /* | 9 | /* |
9 | * The hypercall definitions differ in the low word of the %edx argument | 10 | * The hypercall definitions differ in the low word of the %edx argument |
@@ -20,8 +21,8 @@ | |||
20 | */ | 21 | */ |
21 | 22 | ||
22 | /* Old port-based version */ | 23 | /* Old port-based version */ |
23 | #define VMWARE_HYPERVISOR_PORT "0x5658" | 24 | #define VMWARE_HYPERVISOR_PORT 0x5658 |
24 | #define VMWARE_HYPERVISOR_PORT_HB "0x5659" | 25 | #define VMWARE_HYPERVISOR_PORT_HB 0x5659 |
25 | 26 | ||
26 | /* Current vmcall / vmmcall version */ | 27 | /* Current vmcall / vmmcall version */ |
27 | #define VMWARE_HYPERVISOR_HB BIT(0) | 28 | #define VMWARE_HYPERVISOR_HB BIT(0) |
@@ -29,7 +30,7 @@ | |||
29 | 30 | ||
30 | /* The low bandwidth call. The low word of edx is presumed clear. */ | 31 | /* The low bandwidth call. The low word of edx is presumed clear. */ |
31 | #define VMWARE_HYPERCALL \ | 32 | #define VMWARE_HYPERCALL \ |
32 | ALTERNATIVE_2("movw $" VMWARE_HYPERVISOR_PORT ", %%dx; " \ | 33 | ALTERNATIVE_2("movw $" __stringify(VMWARE_HYPERVISOR_PORT) ", %%dx; " \ |
33 | "inl (%%dx), %%eax", \ | 34 | "inl (%%dx), %%eax", \ |
34 | "vmcall", X86_FEATURE_VMCALL, \ | 35 | "vmcall", X86_FEATURE_VMCALL, \ |
35 | "vmmcall", X86_FEATURE_VMW_VMMCALL) | 36 | "vmmcall", X86_FEATURE_VMW_VMMCALL) |
@@ -39,7 +40,8 @@ | |||
39 | * HB and OUT bits set. | 40 | * HB and OUT bits set. |
40 | */ | 41 | */ |
41 | #define VMWARE_HYPERCALL_HB_OUT \ | 42 | #define VMWARE_HYPERCALL_HB_OUT \ |
42 | ALTERNATIVE_2("movw $" VMWARE_HYPERVISOR_PORT_HB ", %%dx; rep outsb", \ | 43 | ALTERNATIVE_2("movw $" __stringify(VMWARE_HYPERVISOR_PORT_HB) ", %%dx; " \ |
44 | "rep outsb", \ | ||
43 | "vmcall", X86_FEATURE_VMCALL, \ | 45 | "vmcall", X86_FEATURE_VMCALL, \ |
44 | "vmmcall", X86_FEATURE_VMW_VMMCALL) | 46 | "vmmcall", X86_FEATURE_VMW_VMMCALL) |
45 | 47 | ||
@@ -48,7 +50,8 @@ | |||
48 | * HB bit set. | 50 | * HB bit set. |
49 | */ | 51 | */ |
50 | #define VMWARE_HYPERCALL_HB_IN \ | 52 | #define VMWARE_HYPERCALL_HB_IN \ |
51 | ALTERNATIVE_2("movw $" VMWARE_HYPERVISOR_PORT_HB ", %%dx; rep insb", \ | 53 | ALTERNATIVE_2("movw $" __stringify(VMWARE_HYPERVISOR_PORT_HB) ", %%dx; " \ |
54 | "rep insb", \ | ||
52 | "vmcall", X86_FEATURE_VMCALL, \ | 55 | "vmcall", X86_FEATURE_VMCALL, \ |
53 | "vmmcall", X86_FEATURE_VMW_VMMCALL) | 56 | "vmmcall", X86_FEATURE_VMW_VMMCALL) |
54 | #endif | 57 | #endif |