diff mbox

[for,2.8,01/11] linux-headers: update to 4.8-rc4

Message ID 1472526419-5900-2-git-send-email-jasowang@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jason Wang Aug. 30, 2016, 3:06 a.m. UTC
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 include/standard-headers/linux/input-event-codes.h | 32 +++++++++++++++++
 include/standard-headers/linux/input.h             |  1 +
 include/standard-headers/linux/virtio_config.h     | 10 +++++-
 include/standard-headers/linux/virtio_ids.h        |  1 +
 include/standard-headers/linux/virtio_net.h        |  3 ++
 linux-headers/asm-arm/kvm.h                        |  4 +--
 linux-headers/asm-arm64/kvm.h                      |  2 ++
 linux-headers/asm-s390/kvm.h                       | 41 ++++++++++++++++++++++
 linux-headers/asm-x86/unistd_x32.h                 |  4 +--
 linux-headers/linux/kvm.h                          | 18 ++++++++--
 linux-headers/linux/vhost.h                        | 33 +++++++++++++++++
 11 files changed, 142 insertions(+), 7 deletions(-)

Comments

Wei Xu Sept. 5, 2016, 1:24 a.m. UTC | #1
On 2016年08月30日 11:06, Jason Wang wrote:
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> ---
>   include/standard-headers/linux/input-event-codes.h | 32 +++++++++++++++++
>   include/standard-headers/linux/input.h             |  1 +
>   include/standard-headers/linux/virtio_config.h     | 10 +++++-
>   include/standard-headers/linux/virtio_ids.h        |  1 +
>   include/standard-headers/linux/virtio_net.h        |  3 ++
>   linux-headers/asm-arm/kvm.h                        |  4 +--
>   linux-headers/asm-arm64/kvm.h                      |  2 ++
>   linux-headers/asm-s390/kvm.h                       | 41 ++++++++++++++++++++++
>   linux-headers/asm-x86/unistd_x32.h                 |  4 +--
>   linux-headers/linux/kvm.h                          | 18 ++++++++--
>   linux-headers/linux/vhost.h                        | 33 +++++++++++++++++
>   11 files changed, 142 insertions(+), 7 deletions(-)
>
> diff --git a/include/standard-headers/linux/input-event-codes.h b/include/standard-headers/linux/input-event-codes.h
> index 354f0de..5c10f7e 100644
> --- a/include/standard-headers/linux/input-event-codes.h
> +++ b/include/standard-headers/linux/input-event-codes.h
> @@ -611,6 +611,37 @@
>   #define KEY_KBDINPUTASSIST_ACCEPT		0x264
>   #define KEY_KBDINPUTASSIST_CANCEL		0x265
>
> +/* Diagonal movement keys */
> +#define KEY_RIGHT_UP			0x266
> +#define KEY_RIGHT_DOWN			0x267
> +#define KEY_LEFT_UP			0x268
> +#define KEY_LEFT_DOWN			0x269
> +
> +#define KEY_ROOT_MENU			0x26a /* Show Device's Root Menu */
> +/* Show Top Menu of the Media (e.g. DVD) */
> +#define KEY_MEDIA_TOP_MENU		0x26b
> +#define KEY_NUMERIC_11			0x26c
> +#define KEY_NUMERIC_12			0x26d
> +/*
> + * Toggle Audio Description: refers to an audio service that helps blind and
> + * visually impaired consumers understand the action in a program. Note: in
> + * some countries this is referred to as "Video Description".
> + */
> +#define KEY_AUDIO_DESC			0x26e
> +#define KEY_3D_MODE			0x26f
> +#define KEY_NEXT_FAVORITE		0x270
> +#define KEY_STOP_RECORD			0x271
> +#define KEY_PAUSE_RECORD		0x272
> +#define KEY_VOD				0x273 /* Video on Demand */
> +#define KEY_UNMUTE			0x274
> +#define KEY_FASTREVERSE			0x275
> +#define KEY_SLOWREVERSE			0x276
> +/*
> + * Control a data application associated with the currently viewed channel,
> + * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.)
> + */
> +#define KEY_DATA			0x275
> +
>   #define BTN_TRIGGER_HAPPY		0x2c0
>   #define BTN_TRIGGER_HAPPY1		0x2c0
>   #define BTN_TRIGGER_HAPPY2		0x2c1
> @@ -749,6 +780,7 @@
>   #define SW_ROTATE_LOCK		0x0c  /* set = rotate locked/disabled */
>   #define SW_LINEIN_INSERT	0x0d  /* set = inserted */
>   #define SW_MUTE_DEVICE		0x0e  /* set = device disabled */
> +#define SW_PEN_INSERTED		0x0f  /* set = pen inserted */
>   #define SW_MAX_			0x0f
>   #define SW_CNT			(SW_MAX_+1)
>
> diff --git a/include/standard-headers/linux/input.h b/include/standard-headers/linux/input.h
> index a52b202..7361a16 100644
> --- a/include/standard-headers/linux/input.h
> +++ b/include/standard-headers/linux/input.h
> @@ -244,6 +244,7 @@ struct input_mask {
>   #define BUS_ATARI		0x1B
>   #define BUS_SPI			0x1C
>   #define BUS_RMI			0x1D
> +#define BUS_CEC			0x1E
>
>   /*
>    * MT_TOOL types
> diff --git a/include/standard-headers/linux/virtio_config.h b/include/standard-headers/linux/virtio_config.h
> index b30d0cb..b777069 100644
> --- a/include/standard-headers/linux/virtio_config.h
> +++ b/include/standard-headers/linux/virtio_config.h
> @@ -49,7 +49,7 @@
>    * transport being used (eg. virtio_ring), the rest are per-device feature
>    * bits. */
>   #define VIRTIO_TRANSPORT_F_START	28
> -#define VIRTIO_TRANSPORT_F_END		33
> +#define VIRTIO_TRANSPORT_F_END		34
>
>   #ifndef VIRTIO_CONFIG_NO_LEGACY
>   /* Do we get callbacks when the ring is completely used, even if we've
> @@ -63,4 +63,12 @@
>   /* v1.0 compliant. */
>   #define VIRTIO_F_VERSION_1		32
>
> +/*
> + * If clear - device has the IOMMU bypass quirk feature.
> + * If set - use platform tools to detect the IOMMU.
> + *
> + * Note the reverse polarity (compared to most other features),
> + * this is for compatibility with legacy systems.
> + */
> +#define VIRTIO_F_IOMMU_PLATFORM		33
>   #endif /* _LINUX_VIRTIO_CONFIG_H */
> diff --git a/include/standard-headers/linux/virtio_ids.h b/include/standard-headers/linux/virtio_ids.h
> index 77925f5..3228d58 100644
> --- a/include/standard-headers/linux/virtio_ids.h
> +++ b/include/standard-headers/linux/virtio_ids.h
> @@ -41,5 +41,6 @@
>   #define VIRTIO_ID_CAIF	       12 /* Virtio caif */
>   #define VIRTIO_ID_GPU          16 /* virtio GPU */
>   #define VIRTIO_ID_INPUT        18 /* virtio input */
> +#define VIRTIO_ID_VSOCK        19 /* virtio vsock transport */
>
>   #endif /* _LINUX_VIRTIO_IDS_H */
> diff --git a/include/standard-headers/linux/virtio_net.h b/include/standard-headers/linux/virtio_net.h
> index a78f33e..30ff249 100644
> --- a/include/standard-headers/linux/virtio_net.h
> +++ b/include/standard-headers/linux/virtio_net.h
> @@ -35,6 +35,7 @@
>   #define VIRTIO_NET_F_CSUM	0	/* Host handles pkts w/ partial csum */
>   #define VIRTIO_NET_F_GUEST_CSUM	1	/* Guest handles pkts w/ partial csum */
>   #define VIRTIO_NET_F_CTRL_GUEST_OFFLOADS 2 /* Dynamic offload configuration. */
> +#define VIRTIO_NET_F_MTU	3	/* Initial MTU advice */
>   #define VIRTIO_NET_F_MAC	5	/* Host has given MAC address. */
>   #define VIRTIO_NET_F_GUEST_TSO4	7	/* Guest can handle TSOv4 in. */
>   #define VIRTIO_NET_F_GUEST_TSO6	8	/* Guest can handle TSOv6 in. */
> @@ -73,6 +74,8 @@ struct virtio_net_config {
>   	 * Legal values are between 1 and 0x8000
>   	 */
>   	uint16_t max_virtqueue_pairs;
> +	/* Default maximum transmit unit advice */
> +	uint16_t mtu;
>   } QEMU_PACKED;
>
>   /*
> diff --git a/linux-headers/asm-arm/kvm.h b/linux-headers/asm-arm/kvm.h
> index c98e4dc..541268c 100644
> --- a/linux-headers/asm-arm/kvm.h
> +++ b/linux-headers/asm-arm/kvm.h
> @@ -139,8 +139,8 @@ struct kvm_arch_memory_slot {
>   #define ARM_CP15_REG64(...) __ARM_CP15_REG64(__VA_ARGS__)
>
>   #define KVM_REG_ARM_TIMER_CTL		ARM_CP15_REG32(0, 14, 3, 1)
> -#define KVM_REG_ARM_TIMER_CNT		ARM_CP15_REG64(1, 14)
> -#define KVM_REG_ARM_TIMER_CVAL		ARM_CP15_REG64(3, 14)
> +#define KVM_REG_ARM_TIMER_CNT		ARM_CP15_REG64(1, 14)
> +#define KVM_REG_ARM_TIMER_CVAL		ARM_CP15_REG64(3, 14)
>
>   /* Normal registers are mapped as coprocessor 16. */
>   #define KVM_REG_ARM_CORE		(0x0010 << KVM_REG_ARM_COPROC_SHIFT)
> diff --git a/linux-headers/asm-arm64/kvm.h b/linux-headers/asm-arm64/kvm.h
> index 7d82d1f..fd5a276 100644
> --- a/linux-headers/asm-arm64/kvm.h
> +++ b/linux-headers/asm-arm64/kvm.h
> @@ -87,9 +87,11 @@ struct kvm_regs {
>   /* Supported VGICv3 address types  */
>   #define KVM_VGIC_V3_ADDR_TYPE_DIST	2
>   #define KVM_VGIC_V3_ADDR_TYPE_REDIST	3
> +#define KVM_VGIC_ITS_ADDR_TYPE		4
>
>   #define KVM_VGIC_V3_DIST_SIZE		SZ_64K
>   #define KVM_VGIC_V3_REDIST_SIZE		(2 * SZ_64K)
> +#define KVM_VGIC_V3_ITS_SIZE		(2 * SZ_64K)
>
>   #define KVM_ARM_VCPU_POWER_OFF		0 /* CPU is started in OFF state */
>   #define KVM_ARM_VCPU_EL1_32BIT		1 /* CPU running a 32bit VM */
> diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h
> index 09ae5dc..ac63ca6 100644
> --- a/linux-headers/asm-s390/kvm.h
> +++ b/linux-headers/asm-s390/kvm.h
> @@ -93,6 +93,47 @@ struct kvm_s390_vm_cpu_machine {
>   	__u64 fac_list[256];
>   };
>
> +#define KVM_S390_VM_CPU_PROCESSOR_FEAT	2
> +#define KVM_S390_VM_CPU_MACHINE_FEAT	3
> +
> +#define KVM_S390_VM_CPU_FEAT_NR_BITS	1024
> +#define KVM_S390_VM_CPU_FEAT_ESOP	0
> +#define KVM_S390_VM_CPU_FEAT_SIEF2	1
> +#define KVM_S390_VM_CPU_FEAT_64BSCAO	2
> +#define KVM_S390_VM_CPU_FEAT_SIIF	3
> +#define KVM_S390_VM_CPU_FEAT_GPERE	4
> +#define KVM_S390_VM_CPU_FEAT_GSLS	5
> +#define KVM_S390_VM_CPU_FEAT_IB		6
> +#define KVM_S390_VM_CPU_FEAT_CEI	7
> +#define KVM_S390_VM_CPU_FEAT_IBS	8
> +#define KVM_S390_VM_CPU_FEAT_SKEY	9
> +#define KVM_S390_VM_CPU_FEAT_CMMA	10
> +#define KVM_S390_VM_CPU_FEAT_PFMFI	11
> +#define KVM_S390_VM_CPU_FEAT_SIGPIF	12
> +struct kvm_s390_vm_cpu_feat {
> +	__u64 feat[16];
> +};
> +
> +#define KVM_S390_VM_CPU_PROCESSOR_SUBFUNC	4
> +#define KVM_S390_VM_CPU_MACHINE_SUBFUNC		5
> +/* for "test bit" instructions MSB 0 bit ordering, for "query" raw blocks */
> +struct kvm_s390_vm_cpu_subfunc {
> +	__u8 plo[32];		/* always */
> +	__u8 ptff[16];		/* with TOD-clock steering */
> +	__u8 kmac[16];		/* with MSA */
> +	__u8 kmc[16];		/* with MSA */
> +	__u8 km[16];		/* with MSA */
> +	__u8 kimd[16];		/* with MSA */
> +	__u8 klmd[16];		/* with MSA */
> +	__u8 pckmo[16];		/* with MSA3 */
> +	__u8 kmctr[16];		/* with MSA4 */
> +	__u8 kmf[16];		/* with MSA4 */
> +	__u8 kmo[16];		/* with MSA4 */
> +	__u8 pcc[16];		/* with MSA4 */
> +	__u8 ppno[16];		/* with MSA5 */
> +	__u8 reserved[1824];
> +};
> +
>   /* kvm attributes for crypto */
>   #define KVM_S390_VM_CRYPTO_ENABLE_AES_KW	0
>   #define KVM_S390_VM_CRYPTO_ENABLE_DEA_KW	1
> diff --git a/linux-headers/asm-x86/unistd_x32.h b/linux-headers/asm-x86/unistd_x32.h
> index 0230779..e5aea76 100644
> --- a/linux-headers/asm-x86/unistd_x32.h
> +++ b/linux-headers/asm-x86/unistd_x32.h
> @@ -306,9 +306,7 @@
>   #define __NR_vmsplice (__X32_SYSCALL_BIT + 532)
>   #define __NR_move_pages (__X32_SYSCALL_BIT + 533)
>   #define __NR_preadv (__X32_SYSCALL_BIT + 534)
> -#define __NR_preadv2 (__X32_SYSCALL_BIT + 534)
>   #define __NR_pwritev (__X32_SYSCALL_BIT + 535)
> -#define __NR_pwritev2 (__X32_SYSCALL_BIT + 535)
>   #define __NR_rt_tgsigqueueinfo (__X32_SYSCALL_BIT + 536)
>   #define __NR_recvmmsg (__X32_SYSCALL_BIT + 537)
>   #define __NR_sendmmsg (__X32_SYSCALL_BIT + 538)
> @@ -319,5 +317,7 @@
>   #define __NR_io_setup (__X32_SYSCALL_BIT + 543)
>   #define __NR_io_submit (__X32_SYSCALL_BIT + 544)
>   #define __NR_execveat (__X32_SYSCALL_BIT + 545)
> +#define __NR_preadv2 (__X32_SYSCALL_BIT + 546)
> +#define __NR_pwritev2 (__X32_SYSCALL_BIT + 547)
>
>   #endif /* _ASM_X86_UNISTD_X32_H */
> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
> index e60e21b..4806e06 100644
> --- a/linux-headers/linux/kvm.h
> +++ b/linux-headers/linux/kvm.h
> @@ -866,6 +866,10 @@ struct kvm_ppc_smmu_info {
>   #define KVM_CAP_ARM_PMU_V3 126
>   #define KVM_CAP_VCPU_ATTRIBUTES 127
>   #define KVM_CAP_MAX_VCPU_ID 128
> +#define KVM_CAP_X2APIC_API 129
> +#define KVM_CAP_S390_USER_INSTR0 130
> +#define KVM_CAP_MSI_DEVID 131
> +#define KVM_CAP_PPC_HTM 132
>
>   #ifdef KVM_CAP_IRQ_ROUTING
>
> @@ -878,7 +882,10 @@ struct kvm_irq_routing_msi {
>   	__u32 address_lo;
>   	__u32 address_hi;
>   	__u32 data;
> -	__u32 pad;
> +	union {
> +		__u32 pad;
> +		__u32 devid;
> +	};
>   };
>
>   struct kvm_irq_routing_s390_adapter {
> @@ -1024,12 +1031,14 @@ struct kvm_one_reg {
>   	__u64 addr;
>   };
>
> +#define KVM_MSI_VALID_DEVID	(1U << 0)
>   struct kvm_msi {
>   	__u32 address_lo;
>   	__u32 address_hi;
>   	__u32 data;
>   	__u32 flags;
> -	__u8  pad[16];
> +	__u32 devid;
> +	__u8  pad[12];
>   };
>
>   struct kvm_arm_device_addr {
> @@ -1074,6 +1083,8 @@ enum kvm_device_type {
>   #define KVM_DEV_TYPE_FLIC		KVM_DEV_TYPE_FLIC
>   	KVM_DEV_TYPE_ARM_VGIC_V3,
>   #define KVM_DEV_TYPE_ARM_VGIC_V3	KVM_DEV_TYPE_ARM_VGIC_V3
> +	KVM_DEV_TYPE_ARM_VGIC_ITS,
> +#define KVM_DEV_TYPE_ARM_VGIC_ITS	KVM_DEV_TYPE_ARM_VGIC_ITS
>   	KVM_DEV_TYPE_MAX,
>   };
>
> @@ -1313,4 +1324,7 @@ struct kvm_assigned_msix_entry {
>   	__u16 padding[3];
>   };
>
> +#define KVM_X2APIC_API_USE_32BIT_IDS            (1ULL << 0)
> +#define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK  (1ULL << 1)
> +
>   #endif /* __LINUX_KVM_H */
> diff --git a/linux-headers/linux/vhost.h b/linux-headers/linux/vhost.h
> index 571294c..ac7a1f1 100644
> --- a/linux-headers/linux/vhost.h
> +++ b/linux-headers/linux/vhost.h
> @@ -47,6 +47,32 @@ struct vhost_vring_addr {
>   	__u64 log_guest_addr;
>   };
>
> +/* no alignment requirement */
> +struct vhost_iotlb_msg {
> +	__u64 iova;
> +	__u64 size;
> +	__u64 uaddr;
> +#define VHOST_ACCESS_RO      0x1
> +#define VHOST_ACCESS_WO      0x2
> +#define VHOST_ACCESS_RW      0x3
> +	__u8 perm;
> +#define VHOST_IOTLB_MISS           1
> +#define VHOST_IOTLB_UPDATE         2
> +#define VHOST_IOTLB_INVALIDATE     3
> +#define VHOST_IOTLB_ACCESS_FAIL    4
> +	__u8 type;
> +};
> +
> +#define VHOST_IOTLB_MSG 0x1
> +
> +struct vhost_msg {
> +	int type;
> +	union {
> +		struct vhost_iotlb_msg iotlb;
> +		__u8 padding[64];
> +	};
> +};
> +
>   struct vhost_memory_region {
>   	__u64 guest_phys_addr;
>   	__u64 memory_size; /* bytes */
> @@ -146,6 +172,8 @@ struct vhost_memory {
>   #define VHOST_F_LOG_ALL 26
>   /* vhost-net should add virtio_net_hdr for RX, and strip for TX packets. */
>   #define VHOST_NET_F_VIRTIO_NET_HDR 27
> +/* Vhost have device IOTLB */
> +#define VHOST_F_DEVICE_IOTLB 63
>
>   /* VHOST_SCSI specific definitions */
>
> @@ -175,4 +203,9 @@ struct vhost_scsi_target {
>   #define VHOST_SCSI_SET_EVENTS_MISSED _IOW(VHOST_VIRTIO, 0x43, __u32)
>   #define VHOST_SCSI_GET_EVENTS_MISSED _IOW(VHOST_VIRTIO, 0x44, __u32)
>
> +/* VHOST_VSOCK specific defines */
> +
> +#define VHOST_VSOCK_SET_GUEST_CID	_IOW(VHOST_VIRTIO, 0x60, __u64)
> +#define VHOST_VSOCK_SET_RUNNING		_IOW(VHOST_VIRTIO, 0x61, int)
> +
>   #endif
>

Looks this patch includes quite a few misc changes from upstream, it's a 
bit confused to find out which one is related to virtio/vhost dmar 
support, while the upstream header shows a separate commit for new IOTLB 
api, is it possible to split this patch to dmar related one and a
common pull from upstream?

upstream log:
git log -p include/uapi/linux/vhost.h
commit 6b1e6cc7855b09a0a9bfa1d9f30172ba366f161c
Author: Jason Wang <jasowang@redhat.com>
Date: Thu Jun 23 02:04:32 2016 -0400

vhost: new device IOTLB API

This patch tries to implement an device IOTLB for vhost. This could
be used with userspace(qemu) implementation of DMA remapping to
emulate an IOMMU for the guest.
Michael S. Tsirkin Sept. 5, 2016, 1:26 a.m. UTC | #2
On Mon, Sep 05, 2016 at 09:24:37AM +0800, Wei Xu wrote:
> Looks this patch includes quite a few misc changes from upstream, it's a bit
> confused to find out which one is related to virtio/vhost dmar support,
> while the upstream header shows a separate commit for new IOTLB api, is it
> possible to split this patch to dmar related one and a
> common pull from upstream?
> 
> upstream log:
> git log -p include/uapi/linux/vhost.h
> commit 6b1e6cc7855b09a0a9bfa1d9f30172ba366f161c
> Author: Jason Wang <jasowang@redhat.com>
> Date: Thu Jun 23 02:04:32 2016 -0400
> 
> vhost: new device IOTLB API
> 
> This patch tries to implement an device IOTLB for vhost. This could
> be used with userspace(qemu) implementation of DMA remapping to
> emulate an IOMMU for the guest.


You don't need to sync all headers. Just commit the ones that make
sense.
Jason Wang Sept. 6, 2016, 6:28 a.m. UTC | #3
On 2016年09月05日 09:26, Michael S. Tsirkin wrote:
> On Mon, Sep 05, 2016 at 09:24:37AM +0800, Wei Xu wrote:
>> Looks this patch includes quite a few misc changes from upstream, it's a bit
>> confused to find out which one is related to virtio/vhost dmar support,
>> while the upstream header shows a separate commit for new IOTLB api, is it
>> possible to split this patch to dmar related one and a
>> common pull from upstream?
>>
>> upstream log:
>> git log -p include/uapi/linux/vhost.h
>> commit 6b1e6cc7855b09a0a9bfa1d9f30172ba366f161c
>> Author: Jason Wang <jasowang@redhat.com>
>> Date: Thu Jun 23 02:04:32 2016 -0400
>>
>> vhost: new device IOTLB API
>>
>> This patch tries to implement an device IOTLB for vhost. This could
>> be used with userspace(qemu) implementation of DMA remapping to
>> emulate an IOMMU for the guest.
>
> You don't need to sync all headers. Just commit the ones that make
> sense.
>

Ok.
diff mbox

Patch

diff --git a/include/standard-headers/linux/input-event-codes.h b/include/standard-headers/linux/input-event-codes.h
index 354f0de..5c10f7e 100644
--- a/include/standard-headers/linux/input-event-codes.h
+++ b/include/standard-headers/linux/input-event-codes.h
@@ -611,6 +611,37 @@ 
 #define KEY_KBDINPUTASSIST_ACCEPT		0x264
 #define KEY_KBDINPUTASSIST_CANCEL		0x265
 
+/* Diagonal movement keys */
+#define KEY_RIGHT_UP			0x266
+#define KEY_RIGHT_DOWN			0x267
+#define KEY_LEFT_UP			0x268
+#define KEY_LEFT_DOWN			0x269
+
+#define KEY_ROOT_MENU			0x26a /* Show Device's Root Menu */
+/* Show Top Menu of the Media (e.g. DVD) */
+#define KEY_MEDIA_TOP_MENU		0x26b
+#define KEY_NUMERIC_11			0x26c
+#define KEY_NUMERIC_12			0x26d
+/*
+ * Toggle Audio Description: refers to an audio service that helps blind and
+ * visually impaired consumers understand the action in a program. Note: in
+ * some countries this is referred to as "Video Description".
+ */
+#define KEY_AUDIO_DESC			0x26e
+#define KEY_3D_MODE			0x26f
+#define KEY_NEXT_FAVORITE		0x270
+#define KEY_STOP_RECORD			0x271
+#define KEY_PAUSE_RECORD		0x272
+#define KEY_VOD				0x273 /* Video on Demand */
+#define KEY_UNMUTE			0x274
+#define KEY_FASTREVERSE			0x275
+#define KEY_SLOWREVERSE			0x276
+/*
+ * Control a data application associated with the currently viewed channel,
+ * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.)
+ */
+#define KEY_DATA			0x275
+
 #define BTN_TRIGGER_HAPPY		0x2c0
 #define BTN_TRIGGER_HAPPY1		0x2c0
 #define BTN_TRIGGER_HAPPY2		0x2c1
@@ -749,6 +780,7 @@ 
 #define SW_ROTATE_LOCK		0x0c  /* set = rotate locked/disabled */
 #define SW_LINEIN_INSERT	0x0d  /* set = inserted */
 #define SW_MUTE_DEVICE		0x0e  /* set = device disabled */
+#define SW_PEN_INSERTED		0x0f  /* set = pen inserted */
 #define SW_MAX_			0x0f
 #define SW_CNT			(SW_MAX_+1)
 
diff --git a/include/standard-headers/linux/input.h b/include/standard-headers/linux/input.h
index a52b202..7361a16 100644
--- a/include/standard-headers/linux/input.h
+++ b/include/standard-headers/linux/input.h
@@ -244,6 +244,7 @@  struct input_mask {
 #define BUS_ATARI		0x1B
 #define BUS_SPI			0x1C
 #define BUS_RMI			0x1D
+#define BUS_CEC			0x1E
 
 /*
  * MT_TOOL types
diff --git a/include/standard-headers/linux/virtio_config.h b/include/standard-headers/linux/virtio_config.h
index b30d0cb..b777069 100644
--- a/include/standard-headers/linux/virtio_config.h
+++ b/include/standard-headers/linux/virtio_config.h
@@ -49,7 +49,7 @@ 
  * transport being used (eg. virtio_ring), the rest are per-device feature
  * bits. */
 #define VIRTIO_TRANSPORT_F_START	28
-#define VIRTIO_TRANSPORT_F_END		33
+#define VIRTIO_TRANSPORT_F_END		34
 
 #ifndef VIRTIO_CONFIG_NO_LEGACY
 /* Do we get callbacks when the ring is completely used, even if we've
@@ -63,4 +63,12 @@ 
 /* v1.0 compliant. */
 #define VIRTIO_F_VERSION_1		32
 
+/*
+ * If clear - device has the IOMMU bypass quirk feature.
+ * If set - use platform tools to detect the IOMMU.
+ *
+ * Note the reverse polarity (compared to most other features),
+ * this is for compatibility with legacy systems.
+ */
+#define VIRTIO_F_IOMMU_PLATFORM		33
 #endif /* _LINUX_VIRTIO_CONFIG_H */
diff --git a/include/standard-headers/linux/virtio_ids.h b/include/standard-headers/linux/virtio_ids.h
index 77925f5..3228d58 100644
--- a/include/standard-headers/linux/virtio_ids.h
+++ b/include/standard-headers/linux/virtio_ids.h
@@ -41,5 +41,6 @@ 
 #define VIRTIO_ID_CAIF	       12 /* Virtio caif */
 #define VIRTIO_ID_GPU          16 /* virtio GPU */
 #define VIRTIO_ID_INPUT        18 /* virtio input */
+#define VIRTIO_ID_VSOCK        19 /* virtio vsock transport */
 
 #endif /* _LINUX_VIRTIO_IDS_H */
diff --git a/include/standard-headers/linux/virtio_net.h b/include/standard-headers/linux/virtio_net.h
index a78f33e..30ff249 100644
--- a/include/standard-headers/linux/virtio_net.h
+++ b/include/standard-headers/linux/virtio_net.h
@@ -35,6 +35,7 @@ 
 #define VIRTIO_NET_F_CSUM	0	/* Host handles pkts w/ partial csum */
 #define VIRTIO_NET_F_GUEST_CSUM	1	/* Guest handles pkts w/ partial csum */
 #define VIRTIO_NET_F_CTRL_GUEST_OFFLOADS 2 /* Dynamic offload configuration. */
+#define VIRTIO_NET_F_MTU	3	/* Initial MTU advice */
 #define VIRTIO_NET_F_MAC	5	/* Host has given MAC address. */
 #define VIRTIO_NET_F_GUEST_TSO4	7	/* Guest can handle TSOv4 in. */
 #define VIRTIO_NET_F_GUEST_TSO6	8	/* Guest can handle TSOv6 in. */
@@ -73,6 +74,8 @@  struct virtio_net_config {
 	 * Legal values are between 1 and 0x8000
 	 */
 	uint16_t max_virtqueue_pairs;
+	/* Default maximum transmit unit advice */
+	uint16_t mtu;
 } QEMU_PACKED;
 
 /*
diff --git a/linux-headers/asm-arm/kvm.h b/linux-headers/asm-arm/kvm.h
index c98e4dc..541268c 100644
--- a/linux-headers/asm-arm/kvm.h
+++ b/linux-headers/asm-arm/kvm.h
@@ -139,8 +139,8 @@  struct kvm_arch_memory_slot {
 #define ARM_CP15_REG64(...) __ARM_CP15_REG64(__VA_ARGS__)
 
 #define KVM_REG_ARM_TIMER_CTL		ARM_CP15_REG32(0, 14, 3, 1)
-#define KVM_REG_ARM_TIMER_CNT		ARM_CP15_REG64(1, 14) 
-#define KVM_REG_ARM_TIMER_CVAL		ARM_CP15_REG64(3, 14) 
+#define KVM_REG_ARM_TIMER_CNT		ARM_CP15_REG64(1, 14)
+#define KVM_REG_ARM_TIMER_CVAL		ARM_CP15_REG64(3, 14)
 
 /* Normal registers are mapped as coprocessor 16. */
 #define KVM_REG_ARM_CORE		(0x0010 << KVM_REG_ARM_COPROC_SHIFT)
diff --git a/linux-headers/asm-arm64/kvm.h b/linux-headers/asm-arm64/kvm.h
index 7d82d1f..fd5a276 100644
--- a/linux-headers/asm-arm64/kvm.h
+++ b/linux-headers/asm-arm64/kvm.h
@@ -87,9 +87,11 @@  struct kvm_regs {
 /* Supported VGICv3 address types  */
 #define KVM_VGIC_V3_ADDR_TYPE_DIST	2
 #define KVM_VGIC_V3_ADDR_TYPE_REDIST	3
+#define KVM_VGIC_ITS_ADDR_TYPE		4
 
 #define KVM_VGIC_V3_DIST_SIZE		SZ_64K
 #define KVM_VGIC_V3_REDIST_SIZE		(2 * SZ_64K)
+#define KVM_VGIC_V3_ITS_SIZE		(2 * SZ_64K)
 
 #define KVM_ARM_VCPU_POWER_OFF		0 /* CPU is started in OFF state */
 #define KVM_ARM_VCPU_EL1_32BIT		1 /* CPU running a 32bit VM */
diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h
index 09ae5dc..ac63ca6 100644
--- a/linux-headers/asm-s390/kvm.h
+++ b/linux-headers/asm-s390/kvm.h
@@ -93,6 +93,47 @@  struct kvm_s390_vm_cpu_machine {
 	__u64 fac_list[256];
 };
 
+#define KVM_S390_VM_CPU_PROCESSOR_FEAT	2
+#define KVM_S390_VM_CPU_MACHINE_FEAT	3
+
+#define KVM_S390_VM_CPU_FEAT_NR_BITS	1024
+#define KVM_S390_VM_CPU_FEAT_ESOP	0
+#define KVM_S390_VM_CPU_FEAT_SIEF2	1
+#define KVM_S390_VM_CPU_FEAT_64BSCAO	2
+#define KVM_S390_VM_CPU_FEAT_SIIF	3
+#define KVM_S390_VM_CPU_FEAT_GPERE	4
+#define KVM_S390_VM_CPU_FEAT_GSLS	5
+#define KVM_S390_VM_CPU_FEAT_IB		6
+#define KVM_S390_VM_CPU_FEAT_CEI	7
+#define KVM_S390_VM_CPU_FEAT_IBS	8
+#define KVM_S390_VM_CPU_FEAT_SKEY	9
+#define KVM_S390_VM_CPU_FEAT_CMMA	10
+#define KVM_S390_VM_CPU_FEAT_PFMFI	11
+#define KVM_S390_VM_CPU_FEAT_SIGPIF	12
+struct kvm_s390_vm_cpu_feat {
+	__u64 feat[16];
+};
+
+#define KVM_S390_VM_CPU_PROCESSOR_SUBFUNC	4
+#define KVM_S390_VM_CPU_MACHINE_SUBFUNC		5
+/* for "test bit" instructions MSB 0 bit ordering, for "query" raw blocks */
+struct kvm_s390_vm_cpu_subfunc {
+	__u8 plo[32];		/* always */
+	__u8 ptff[16];		/* with TOD-clock steering */
+	__u8 kmac[16];		/* with MSA */
+	__u8 kmc[16];		/* with MSA */
+	__u8 km[16];		/* with MSA */
+	__u8 kimd[16];		/* with MSA */
+	__u8 klmd[16];		/* with MSA */
+	__u8 pckmo[16];		/* with MSA3 */
+	__u8 kmctr[16];		/* with MSA4 */
+	__u8 kmf[16];		/* with MSA4 */
+	__u8 kmo[16];		/* with MSA4 */
+	__u8 pcc[16];		/* with MSA4 */
+	__u8 ppno[16];		/* with MSA5 */
+	__u8 reserved[1824];
+};
+
 /* kvm attributes for crypto */
 #define KVM_S390_VM_CRYPTO_ENABLE_AES_KW	0
 #define KVM_S390_VM_CRYPTO_ENABLE_DEA_KW	1
diff --git a/linux-headers/asm-x86/unistd_x32.h b/linux-headers/asm-x86/unistd_x32.h
index 0230779..e5aea76 100644
--- a/linux-headers/asm-x86/unistd_x32.h
+++ b/linux-headers/asm-x86/unistd_x32.h
@@ -306,9 +306,7 @@ 
 #define __NR_vmsplice (__X32_SYSCALL_BIT + 532)
 #define __NR_move_pages (__X32_SYSCALL_BIT + 533)
 #define __NR_preadv (__X32_SYSCALL_BIT + 534)
-#define __NR_preadv2 (__X32_SYSCALL_BIT + 534)
 #define __NR_pwritev (__X32_SYSCALL_BIT + 535)
-#define __NR_pwritev2 (__X32_SYSCALL_BIT + 535)
 #define __NR_rt_tgsigqueueinfo (__X32_SYSCALL_BIT + 536)
 #define __NR_recvmmsg (__X32_SYSCALL_BIT + 537)
 #define __NR_sendmmsg (__X32_SYSCALL_BIT + 538)
@@ -319,5 +317,7 @@ 
 #define __NR_io_setup (__X32_SYSCALL_BIT + 543)
 #define __NR_io_submit (__X32_SYSCALL_BIT + 544)
 #define __NR_execveat (__X32_SYSCALL_BIT + 545)
+#define __NR_preadv2 (__X32_SYSCALL_BIT + 546)
+#define __NR_pwritev2 (__X32_SYSCALL_BIT + 547)
 
 #endif /* _ASM_X86_UNISTD_X32_H */
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index e60e21b..4806e06 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -866,6 +866,10 @@  struct kvm_ppc_smmu_info {
 #define KVM_CAP_ARM_PMU_V3 126
 #define KVM_CAP_VCPU_ATTRIBUTES 127
 #define KVM_CAP_MAX_VCPU_ID 128
+#define KVM_CAP_X2APIC_API 129
+#define KVM_CAP_S390_USER_INSTR0 130
+#define KVM_CAP_MSI_DEVID 131
+#define KVM_CAP_PPC_HTM 132
 
 #ifdef KVM_CAP_IRQ_ROUTING
 
@@ -878,7 +882,10 @@  struct kvm_irq_routing_msi {
 	__u32 address_lo;
 	__u32 address_hi;
 	__u32 data;
-	__u32 pad;
+	union {
+		__u32 pad;
+		__u32 devid;
+	};
 };
 
 struct kvm_irq_routing_s390_adapter {
@@ -1024,12 +1031,14 @@  struct kvm_one_reg {
 	__u64 addr;
 };
 
+#define KVM_MSI_VALID_DEVID	(1U << 0)
 struct kvm_msi {
 	__u32 address_lo;
 	__u32 address_hi;
 	__u32 data;
 	__u32 flags;
-	__u8  pad[16];
+	__u32 devid;
+	__u8  pad[12];
 };
 
 struct kvm_arm_device_addr {
@@ -1074,6 +1083,8 @@  enum kvm_device_type {
 #define KVM_DEV_TYPE_FLIC		KVM_DEV_TYPE_FLIC
 	KVM_DEV_TYPE_ARM_VGIC_V3,
 #define KVM_DEV_TYPE_ARM_VGIC_V3	KVM_DEV_TYPE_ARM_VGIC_V3
+	KVM_DEV_TYPE_ARM_VGIC_ITS,
+#define KVM_DEV_TYPE_ARM_VGIC_ITS	KVM_DEV_TYPE_ARM_VGIC_ITS
 	KVM_DEV_TYPE_MAX,
 };
 
@@ -1313,4 +1324,7 @@  struct kvm_assigned_msix_entry {
 	__u16 padding[3];
 };
 
+#define KVM_X2APIC_API_USE_32BIT_IDS            (1ULL << 0)
+#define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK  (1ULL << 1)
+
 #endif /* __LINUX_KVM_H */
diff --git a/linux-headers/linux/vhost.h b/linux-headers/linux/vhost.h
index 571294c..ac7a1f1 100644
--- a/linux-headers/linux/vhost.h
+++ b/linux-headers/linux/vhost.h
@@ -47,6 +47,32 @@  struct vhost_vring_addr {
 	__u64 log_guest_addr;
 };
 
+/* no alignment requirement */
+struct vhost_iotlb_msg {
+	__u64 iova;
+	__u64 size;
+	__u64 uaddr;
+#define VHOST_ACCESS_RO      0x1
+#define VHOST_ACCESS_WO      0x2
+#define VHOST_ACCESS_RW      0x3
+	__u8 perm;
+#define VHOST_IOTLB_MISS           1
+#define VHOST_IOTLB_UPDATE         2
+#define VHOST_IOTLB_INVALIDATE     3
+#define VHOST_IOTLB_ACCESS_FAIL    4
+	__u8 type;
+};
+
+#define VHOST_IOTLB_MSG 0x1
+
+struct vhost_msg {
+	int type;
+	union {
+		struct vhost_iotlb_msg iotlb;
+		__u8 padding[64];
+	};
+};
+
 struct vhost_memory_region {
 	__u64 guest_phys_addr;
 	__u64 memory_size; /* bytes */
@@ -146,6 +172,8 @@  struct vhost_memory {
 #define VHOST_F_LOG_ALL 26
 /* vhost-net should add virtio_net_hdr for RX, and strip for TX packets. */
 #define VHOST_NET_F_VIRTIO_NET_HDR 27
+/* Vhost have device IOTLB */
+#define VHOST_F_DEVICE_IOTLB 63
 
 /* VHOST_SCSI specific definitions */
 
@@ -175,4 +203,9 @@  struct vhost_scsi_target {
 #define VHOST_SCSI_SET_EVENTS_MISSED _IOW(VHOST_VIRTIO, 0x43, __u32)
 #define VHOST_SCSI_GET_EVENTS_MISSED _IOW(VHOST_VIRTIO, 0x44, __u32)
 
+/* VHOST_VSOCK specific defines */
+
+#define VHOST_VSOCK_SET_GUEST_CID	_IOW(VHOST_VIRTIO, 0x60, __u64)
+#define VHOST_VSOCK_SET_RUNNING		_IOW(VHOST_VIRTIO, 0x61, int)
+
 #endif