diff mbox

[kvmtool] x86/kvm-cpu.c: don't include <asm/msr-index.h>

Message ID 20170819205420.30848-1-thomas.petazzoni@free-electrons.com (mailing list archive)
State New, archived
Headers show

Commit Message

Thomas Petazzoni Aug. 19, 2017, 8:54 p.m. UTC
Since kernel commit 25dc1d6cc3082aab293e5dad47623b550f7ddd2a ("x86:
stop exporting msr-index.h to userland"), <asm/msr-index.h> is no
longer exported to userspace. Therefore, any toolchain built with
kernel headers >= 4.12 will no longer have this header file, causing a
build failure in kvmtool.

As a replacement, this patch includes inside x86/kvm-cpu.c the
necessary MSR_* definitions.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 x86/kvm-cpu.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

Comments

Riku Voipio Aug. 30, 2017, 8:36 a.m. UTC | #1
On 19 August 2017 at 23:54, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Since kernel commit 25dc1d6cc3082aab293e5dad47623b550f7ddd2a ("x86:
> stop exporting msr-index.h to userland"), <asm/msr-index.h> is no
> longer exported to userspace. Therefore, any toolchain built with
> kernel headers >= 4.12 will no longer have this header file, causing a
> build failure in kvmtool.
>
> As a replacement, this patch includes inside x86/kvm-cpu.c the
> necessary MSR_* definitions.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Reviewed-by: Riku Voipio <riku.voipio@linaro.org>

Fixes the build failure on Debian Unstable and the constants match
what are in the kernel  header.


> ---
>  x86/kvm-cpu.c | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/x86/kvm-cpu.c b/x86/kvm-cpu.c
> index 5cc4e1e..b02ff65 100644
> --- a/x86/kvm-cpu.c
> +++ b/x86/kvm-cpu.c
> @@ -4,7 +4,6 @@
>  #include "kvm/util.h"
>  #include "kvm/kvm.h"
>
> -#include <asm/msr-index.h>
>  #include <asm/apicdef.h>
>  #include <linux/err.h>
>  #include <sys/ioctl.h>
> @@ -136,6 +135,22 @@ static struct kvm_msrs *kvm_msrs__new(size_t nmsrs)
>         return vcpu;
>  }
>
> +#define MSR_IA32_SYSENTER_CS            0x00000174
> +#define MSR_IA32_SYSENTER_ESP           0x00000175
> +#define MSR_IA32_SYSENTER_EIP           0x00000176
> +
> +#define MSR_STAR                0xc0000081 /* legacy mode SYSCALL target */
> +#define MSR_LSTAR               0xc0000082 /* long mode SYSCALL target */
> +#define MSR_CSTAR               0xc0000083 /* compat mode SYSCALL target */
> +#define MSR_SYSCALL_MASK        0xc0000084 /* EFLAGS mask for syscall */
> +#define MSR_KERNEL_GS_BASE      0xc0000102 /* SwapGS GS shadow */
> +
> +#define MSR_IA32_TSC                    0x00000010
> +#define MSR_IA32_MISC_ENABLE            0x000001a0
> +
> +#define MSR_IA32_MISC_ENABLE_FAST_STRING_BIT            0
> +#define MSR_IA32_MISC_ENABLE_FAST_STRING                (1ULL << MSR_IA32_MISC_ENABLE_FAST_STRING_BIT)
> +
>  #define KVM_MSR_ENTRY(_index, _data)   \
>         (struct kvm_msr_entry) { .index = _index, .data = _data }
>
> --
> 2.9.4
>
diff mbox

Patch

diff --git a/x86/kvm-cpu.c b/x86/kvm-cpu.c
index 5cc4e1e..b02ff65 100644
--- a/x86/kvm-cpu.c
+++ b/x86/kvm-cpu.c
@@ -4,7 +4,6 @@ 
 #include "kvm/util.h"
 #include "kvm/kvm.h"
 
-#include <asm/msr-index.h>
 #include <asm/apicdef.h>
 #include <linux/err.h>
 #include <sys/ioctl.h>
@@ -136,6 +135,22 @@  static struct kvm_msrs *kvm_msrs__new(size_t nmsrs)
 	return vcpu;
 }
 
+#define MSR_IA32_SYSENTER_CS            0x00000174
+#define MSR_IA32_SYSENTER_ESP           0x00000175
+#define MSR_IA32_SYSENTER_EIP           0x00000176
+
+#define MSR_STAR                0xc0000081 /* legacy mode SYSCALL target */
+#define MSR_LSTAR               0xc0000082 /* long mode SYSCALL target */
+#define MSR_CSTAR               0xc0000083 /* compat mode SYSCALL target */
+#define MSR_SYSCALL_MASK        0xc0000084 /* EFLAGS mask for syscall */
+#define MSR_KERNEL_GS_BASE      0xc0000102 /* SwapGS GS shadow */
+
+#define MSR_IA32_TSC                    0x00000010
+#define MSR_IA32_MISC_ENABLE            0x000001a0
+
+#define MSR_IA32_MISC_ENABLE_FAST_STRING_BIT            0
+#define MSR_IA32_MISC_ENABLE_FAST_STRING                (1ULL << MSR_IA32_MISC_ENABLE_FAST_STRING_BIT)
+
 #define KVM_MSR_ENTRY(_index, _data)	\
 	(struct kvm_msr_entry) { .index = _index, .data = _data }