diff mbox

[33/58] KVM: update kernel headers

Message ID 1315989802-18753-34-git-send-email-agraf@suse.de
State New
Headers show

Commit Message

Alexander Graf Sept. 14, 2011, 8:42 a.m. UTC
This patch updates the kvm kernel headers to the latest version.

Signed-off-by: Alexander Graf <agraf@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(-)

Comments

Blue Swirl Sept. 17, 2011, 4:59 p.m. UTC | #1
On Wed, Sep 14, 2011 at 8:42 AM, Alexander Graf <agraf@suse.de> wrote:
> This patch updates the kvm kernel headers to the latest version.
>
> Signed-off-by: Alexander Graf <agraf@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?

> --
> 1.6.0.2
>
>
Alexander Graf Sept. 17, 2011, 5:17 p.m. UTC | #2
Am 17.09.2011 um 18:59 schrieb Blue Swirl <blauwirbel@gmail.com>:

> On Wed, Sep 14, 2011 at 8:42 AM, Alexander Graf <agraf@suse.de> wrote:
>> This patch updates the kvm kernel headers to the latest version.
>> 
>> Signed-off-by: Alexander Graf <agraf@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

>
Scott Wood Sept. 19, 2011, 5:50 p.m. UTC | #3
On 09/17/2011 11:59 AM, Blue Swirl wrote:
> On Wed, Sep 14, 2011 at 8:42 AM, Alexander Graf <agraf@suse.de> wrote:
>> 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 could be fixed in the kernel, but I don't think we should be making
local changes to this in qemu.  It'll just get reintroduced the next
time somebody runs the update script.

-Scott
Alexander Graf Sept. 19, 2011, 5:50 p.m. UTC | #4
On 19.09.2011, at 19:50, Scott Wood wrote:

> On 09/17/2011 11:59 AM, Blue Swirl wrote:
>> On Wed, Sep 14, 2011 at 8:42 AM, Alexander Graf <agraf@suse.de> wrote:
>>> 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 could be fixed in the kernel, but I don't think we should be making
> local changes to this in qemu.  It'll just get reintroduced the next
> time somebody runs the update script.

Yeah, already got a patch for the kernel ready :)


Alex
diff mbox

Patch

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 */
+