Am 17.09.2011 um 18:59 schrieb Blue Swirl <blauwir...@gmail.com>: > On Wed, Sep 14, 2011 at 8:42 AM, Alexander Graf <ag...@suse.de> wrote: >> This patch updates the kvm kernel headers to the latest version. >> >> Signed-off-by: Alexander Graf <ag...@suse.de> >> --- >> linux-headers/asm-powerpc/kvm.h | 23 +++++++++++++++++++++++ >> linux-headers/asm-x86/kvm_para.h | 14 ++++++++++++++ >> linux-headers/linux/kvm.h | 25 +++++++++++++++++-------- >> linux-headers/linux/kvm_para.h | 1 + >> 4 files changed, 55 insertions(+), 8 deletions(-) >> >> diff --git a/linux-headers/asm-powerpc/kvm.h >> b/linux-headers/asm-powerpc/kvm.h >> index 777d307..579e219 100644 >> --- a/linux-headers/asm-powerpc/kvm.h >> +++ b/linux-headers/asm-powerpc/kvm.h >> @@ -22,6 +22,10 @@ >> >> #include <linux/types.h> >> >> +/* Select powerpc specific features in <linux/kvm.h> */ >> +#define __KVM_HAVE_SPAPR_TCE >> +#define __KVM_HAVE_PPC_SMT >> + >> struct kvm_regs { >> __u64 pc; >> __u64 cr; >> @@ -145,6 +149,12 @@ struct kvm_regs { >> #define KVM_SREGS_E_UPDATE_DBSR (1 << 3) >> >> /* >> + * Book3S special bits to indicate contents in the struct by maintaining >> + * backwards compatibility with older structs. If adding a new field, >> + * please make sure to add a flag for that new field */ >> +#define KVM_SREGS_S_HIOR (1 << 0) >> + >> +/* >> * In KVM_SET_SREGS, reserved/pad fields must be left untouched from a >> * previous KVM_GET_REGS. >> * >> @@ -169,6 +179,8 @@ struct kvm_sregs { >> __u64 ibat[8]; >> __u64 dbat[8]; >> } ppc32; >> + __u64 flags; /* KVM_SREGS_S_ */ >> + __u64 hior; >> } s; >> struct { >> union { >> @@ -272,4 +284,15 @@ struct kvm_guest_debug_arch { >> #define KVM_INTERRUPT_UNSET -2U >> #define KVM_INTERRUPT_SET_LEVEL -3U >> >> +/* for KVM_CAP_SPAPR_TCE */ >> +struct kvm_create_spapr_tce { >> + __u64 liobn; >> + __u32 window_size; >> +}; >> + >> +/* for KVM_ALLOCATE_RMA */ >> +struct kvm_allocate_rma { >> + __u64 rma_size; >> +}; >> + >> #endif /* __LINUX_KVM_POWERPC_H */ >> diff --git a/linux-headers/asm-x86/kvm_para.h >> b/linux-headers/asm-x86/kvm_para.h >> index 834d71e..f2ac46a 100644 >> --- a/linux-headers/asm-x86/kvm_para.h >> +++ b/linux-headers/asm-x86/kvm_para.h >> @@ -21,6 +21,7 @@ >> */ >> #define KVM_FEATURE_CLOCKSOURCE2 3 >> #define KVM_FEATURE_ASYNC_PF 4 >> +#define KVM_FEATURE_STEAL_TIME 5 >> >> /* The last 8 bits are used to indicate how to interpret the flags field >> * in pvclock structure. If no bits are set, all flags are ignored. >> @@ -30,10 +31,23 @@ >> #define MSR_KVM_WALL_CLOCK 0x11 >> #define MSR_KVM_SYSTEM_TIME 0x12 >> >> +#define KVM_MSR_ENABLED 1 >> /* Custom MSRs falls in the range 0x4b564d00-0x4b564dff */ >> #define MSR_KVM_WALL_CLOCK_NEW 0x4b564d00 >> #define MSR_KVM_SYSTEM_TIME_NEW 0x4b564d01 >> #define MSR_KVM_ASYNC_PF_EN 0x4b564d02 >> +#define MSR_KVM_STEAL_TIME 0x4b564d03 >> + >> +struct kvm_steal_time { >> + __u64 steal; >> + __u32 version; >> + __u32 flags; >> + __u32 pad[12]; >> +}; >> + >> +#define KVM_STEAL_ALIGNMENT_BITS 5 >> +#define KVM_STEAL_VALID_BITS ((-1ULL << (KVM_STEAL_ALIGNMENT_BITS + 1))) >> +#define KVM_STEAL_RESERVED_MASK (((1 << KVM_STEAL_ALIGNMENT_BITS) - 1 ) << >> 1) >> >> #define KVM_MAX_MMU_OP_BATCH 32 >> >> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h >> index fc63b73..2062375 100644 >> --- a/linux-headers/linux/kvm.h >> +++ b/linux-headers/linux/kvm.h >> @@ -161,6 +161,7 @@ struct kvm_pit_config { >> #define KVM_EXIT_NMI 16 >> #define KVM_EXIT_INTERNAL_ERROR 17 >> #define KVM_EXIT_OSI 18 >> +#define KVM_EXIT_PAPR_HCALL 19 >> >> /* For KVM_EXIT_INTERNAL_ERROR */ >> #define KVM_INTERNAL_ERROR_EMULATION 1 >> @@ -264,6 +265,11 @@ struct kvm_run { >> struct { >> __u64 gprs[32]; >> } osi; >> + struct { >> + __u64 nr; >> + __u64 ret; >> + __u64 args[9]; >> + } papr_hcall; >> /* Fix the size of the union. */ >> char padding[256]; >> }; >> @@ -457,7 +463,7 @@ struct kvm_ppc_pvinfo { >> #define KVM_CAP_VAPIC 6 >> #define KVM_CAP_EXT_CPUID 7 >> #define KVM_CAP_CLOCKSOURCE 8 >> -#define KVM_CAP_NR_VCPUS 9 /* returns max vcpus per vm */ >> +#define KVM_CAP_NR_VCPUS 9 /* returns recommended max vcpus per vm */ >> #define KVM_CAP_NR_MEMSLOTS 10 /* returns max memory slots per vm */ >> #define KVM_CAP_PIT 11 >> #define KVM_CAP_NOP_IO_DELAY 12 >> @@ -544,6 +550,12 @@ struct kvm_ppc_pvinfo { >> #define KVM_CAP_TSC_CONTROL 60 >> #define KVM_CAP_GET_TSC_KHZ 61 >> #define KVM_CAP_PPC_BOOKE_SREGS 62 >> +#define KVM_CAP_SPAPR_TCE 63 >> +#define KVM_CAP_PPC_SMT 64 >> +#define KVM_CAP_PPC_RMA 65 >> +#define KVM_CAP_MAX_VCPUS 66 /* returns max vcpus per vm */ >> +#define KVM_CAP_PPC_HIOR 67 >> +#define KVM_CAP_PPC_PAPR 68 >> >> #ifdef KVM_CAP_IRQ_ROUTING >> >> @@ -746,6 +758,9 @@ struct kvm_clock_data { >> /* Available with KVM_CAP_XCRS */ >> #define KVM_GET_XCRS _IOR(KVMIO, 0xa6, struct kvm_xcrs) >> #define KVM_SET_XCRS _IOW(KVMIO, 0xa7, struct kvm_xcrs) >> +#define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct >> kvm_create_spapr_tce) >> +/* Available with KVM_CAP_RMA */ >> +#define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma) >> >> #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) >> >> @@ -773,20 +788,14 @@ struct kvm_assigned_pci_dev { >> >> struct kvm_assigned_irq { >> __u32 assigned_dev_id; >> - __u32 host_irq; >> + __u32 host_irq; /* ignored (legacy field) */ >> __u32 guest_irq; >> __u32 flags; >> union { >> - struct { >> - __u32 addr_lo; >> - __u32 addr_hi; >> - __u32 data; >> - } guest_msi; >> __u32 reserved[12]; >> }; >> }; >> >> - >> struct kvm_assigned_msix_nr { >> __u32 assigned_dev_id; >> __u16 entry_nr; >> diff --git a/linux-headers/linux/kvm_para.h b/linux-headers/linux/kvm_para.h >> index 7bdcf93..b315e27 100644 >> --- a/linux-headers/linux/kvm_para.h >> +++ b/linux-headers/linux/kvm_para.h >> @@ -26,3 +26,4 @@ >> #include <asm/kvm_para.h> >> >> #endif /* __LINUX_KVM_PARA_H */ >> + > > Can we avoid this?
It's a conflict generated by how the real header files look like and what whitespace fixing makes of them. I suppose the best way to fix this would be to also whitespace-fix the Linux headers :). Will send a patch. Alex >