On 19 August 2017 at 23:54, Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> Reviewed-by: Riku Voipio <riku.voipio@xxxxxxxxxx> 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 >