|
|
76daa3 |
From b198c479d7a97c2400a7eebf73581707323e0e7e Mon Sep 17 00:00:00 2001
|
|
|
76daa3 |
From: Auger Eric <eric.auger@redhat.com>
|
|
|
76daa3 |
Date: Fri, 16 Jun 2017 15:17:52 +0200
|
|
|
76daa3 |
Subject: [PATCH 1/5] linux-headers: update
|
|
|
76daa3 |
|
|
|
76daa3 |
RH-Author: Auger Eric <eric.auger@redhat.com>
|
|
|
76daa3 |
Message-id: <1497626276-18221-2-git-send-email-eric.auger@redhat.com>
|
|
|
76daa3 |
Patchwork-id: 75633
|
|
|
76daa3 |
O-Subject: [Pegas-1.0 qemu-kvm PATCH v2 1/5] linux-headers: update
|
|
|
76daa3 |
Bugzilla: 1462061
|
|
|
76daa3 |
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
|
|
|
76daa3 |
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
|
|
76daa3 |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
76daa3 |
|
|
|
76daa3 |
From: Cornelia Huck <cornelia.huck@de.ibm.com>
|
|
|
76daa3 |
|
|
|
76daa3 |
Update against Linux v4.12-rc1.
|
|
|
76daa3 |
|
|
|
76daa3 |
Also include the new vfio_ccw.h header.
|
|
|
76daa3 |
|
|
|
76daa3 |
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
|
|
|
76daa3 |
(cherry picked from commit 74c98e20a604b9db58284b8727688df70e9bf643)
|
|
|
76daa3 |
Signed-off-by: Eric Auger <eric.auger@redhat.com>
|
|
|
76daa3 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
76daa3 |
---
|
|
|
76daa3 |
include/standard-headers/asm-x86/hyperv.h | 7 +++++-
|
|
|
76daa3 |
include/standard-headers/linux/input-event-codes.h | 1 +
|
|
|
76daa3 |
include/standard-headers/linux/input.h | 11 +++++---
|
|
|
76daa3 |
include/standard-headers/linux/pci_regs.h | 3 ++-
|
|
|
76daa3 |
linux-headers/asm-arm/kvm.h | 10 +++++++-
|
|
|
76daa3 |
linux-headers/asm-arm/unistd-common.h | 1 +
|
|
|
76daa3 |
linux-headers/asm-arm64/kvm.h | 10 +++++++-
|
|
|
76daa3 |
linux-headers/asm-powerpc/kvm.h | 3 +++
|
|
|
76daa3 |
linux-headers/asm-powerpc/unistd.h | 1 +
|
|
|
76daa3 |
linux-headers/asm-s390/kvm.h | 29 +++++++++++++++++++---
|
|
|
76daa3 |
linux-headers/asm-s390/unistd.h | 4 ++-
|
|
|
76daa3 |
linux-headers/asm-x86/kvm.h | 3 +++
|
|
|
76daa3 |
linux-headers/asm-x86/unistd_32.h | 2 ++
|
|
|
76daa3 |
linux-headers/asm-x86/unistd_64.h | 1 +
|
|
|
76daa3 |
linux-headers/asm-x86/unistd_x32.h | 1 +
|
|
|
76daa3 |
linux-headers/linux/kvm.h | 25 +++++++++++++++++++
|
|
|
76daa3 |
linux-headers/linux/userfaultfd.h | 11 +++++---
|
|
|
76daa3 |
linux-headers/linux/vfio.h | 18 ++++++++++++++
|
|
|
76daa3 |
linux-headers/linux/vfio_ccw.h | 24 ++++++++++++++++++
|
|
|
76daa3 |
scripts/update-linux-headers.sh | 2 +-
|
|
|
76daa3 |
20 files changed, 151 insertions(+), 16 deletions(-)
|
|
|
76daa3 |
create mode 100644 linux-headers/linux/vfio_ccw.h
|
|
|
76daa3 |
|
|
|
76daa3 |
diff --git a/include/standard-headers/asm-x86/hyperv.h b/include/standard-headers/asm-x86/hyperv.h
|
|
|
76daa3 |
index eca9a2c..d0c6e0a 100644
|
|
|
76daa3 |
--- a/include/standard-headers/asm-x86/hyperv.h
|
|
|
76daa3 |
+++ b/include/standard-headers/asm-x86/hyperv.h
|
|
|
76daa3 |
@@ -124,7 +124,7 @@
|
|
|
76daa3 |
* Recommend using hypercall for address space switches rather
|
|
|
76daa3 |
* than MOV to CR3 instruction
|
|
|
76daa3 |
*/
|
|
|
76daa3 |
-#define HV_X64_MWAIT_RECOMMENDED (1 << 0)
|
|
|
76daa3 |
+#define HV_X64_AS_SWITCH_RECOMMENDED (1 << 0)
|
|
|
76daa3 |
/* Recommend using hypercall for local TLB flushes rather
|
|
|
76daa3 |
* than INVLPG or MOV to CR3 instructions */
|
|
|
76daa3 |
#define HV_X64_LOCAL_TLB_FLUSH_RECOMMENDED (1 << 1)
|
|
|
76daa3 |
@@ -148,6 +148,11 @@
|
|
|
76daa3 |
#define HV_X64_RELAXED_TIMING_RECOMMENDED (1 << 5)
|
|
|
76daa3 |
|
|
|
76daa3 |
/*
|
|
|
76daa3 |
+ * Virtual APIC support
|
|
|
76daa3 |
+ */
|
|
|
76daa3 |
+#define HV_X64_DEPRECATING_AEOI_RECOMMENDED (1 << 9)
|
|
|
76daa3 |
+
|
|
|
76daa3 |
+/*
|
|
|
76daa3 |
* Crash notification flag.
|
|
|
76daa3 |
*/
|
|
|
76daa3 |
#define HV_CRASH_CTL_CRASH_NOTIFY (1ULL << 63)
|
|
|
76daa3 |
diff --git a/include/standard-headers/linux/input-event-codes.h b/include/standard-headers/linux/input-event-codes.h
|
|
|
76daa3 |
index c8b3338..29d463a 100644
|
|
|
76daa3 |
--- a/include/standard-headers/linux/input-event-codes.h
|
|
|
76daa3 |
+++ b/include/standard-headers/linux/input-event-codes.h
|
|
|
76daa3 |
@@ -641,6 +641,7 @@
|
|
|
76daa3 |
* e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.)
|
|
|
76daa3 |
*/
|
|
|
76daa3 |
#define KEY_DATA 0x277
|
|
|
76daa3 |
+#define KEY_ONSCREEN_KEYBOARD 0x278
|
|
|
76daa3 |
|
|
|
76daa3 |
#define BTN_TRIGGER_HAPPY 0x2c0
|
|
|
76daa3 |
#define BTN_TRIGGER_HAPPY1 0x2c0
|
|
|
76daa3 |
diff --git a/include/standard-headers/linux/input.h b/include/standard-headers/linux/input.h
|
|
|
76daa3 |
index b472b85..666e201 100644
|
|
|
76daa3 |
--- a/include/standard-headers/linux/input.h
|
|
|
76daa3 |
+++ b/include/standard-headers/linux/input.h
|
|
|
76daa3 |
@@ -58,9 +58,14 @@ struct input_id {
|
|
|
76daa3 |
* Note that input core does not clamp reported values to the
|
|
|
76daa3 |
* [minimum, maximum] limits, such task is left to userspace.
|
|
|
76daa3 |
*
|
|
|
76daa3 |
- * Resolution for main axes (ABS_X, ABS_Y, ABS_Z) is reported in
|
|
|
76daa3 |
- * units per millimeter (units/mm), resolution for rotational axes
|
|
|
76daa3 |
- * (ABS_RX, ABS_RY, ABS_RZ) is reported in units per radian.
|
|
|
76daa3 |
+ * The default resolution for main axes (ABS_X, ABS_Y, ABS_Z)
|
|
|
76daa3 |
+ * is reported in units per millimeter (units/mm), resolution
|
|
|
76daa3 |
+ * for rotational axes (ABS_RX, ABS_RY, ABS_RZ) is reported
|
|
|
76daa3 |
+ * in units per radian.
|
|
|
76daa3 |
+ * When INPUT_PROP_ACCELEROMETER is set the resolution changes.
|
|
|
76daa3 |
+ * The main axes (ABS_X, ABS_Y, ABS_Z) are then reported in
|
|
|
76daa3 |
+ * in units per g (units/g) and in units per degree per second
|
|
|
76daa3 |
+ * (units/deg/s) for rotational axes (ABS_RX, ABS_RY, ABS_RZ).
|
|
|
76daa3 |
*/
|
|
|
76daa3 |
struct input_absinfo {
|
|
|
76daa3 |
int32_t value;
|
|
|
76daa3 |
diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-headers/linux/pci_regs.h
|
|
|
76daa3 |
index 634c9c4..d56bb00 100644
|
|
|
76daa3 |
--- a/include/standard-headers/linux/pci_regs.h
|
|
|
76daa3 |
+++ b/include/standard-headers/linux/pci_regs.h
|
|
|
76daa3 |
@@ -114,7 +114,7 @@
|
|
|
76daa3 |
#define PCI_SUBSYSTEM_ID 0x2e
|
|
|
76daa3 |
#define PCI_ROM_ADDRESS 0x30 /* Bits 31..11 are address, 10..1 reserved */
|
|
|
76daa3 |
#define PCI_ROM_ADDRESS_ENABLE 0x01
|
|
|
76daa3 |
-#define PCI_ROM_ADDRESS_MASK (~0x7ffUL)
|
|
|
76daa3 |
+#define PCI_ROM_ADDRESS_MASK (~0x7ffU)
|
|
|
76daa3 |
|
|
|
76daa3 |
#define PCI_CAPABILITY_LIST 0x34 /* Offset of first capability list entry */
|
|
|
76daa3 |
|
|
|
76daa3 |
@@ -630,6 +630,7 @@
|
|
|
76daa3 |
#define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f /* Completion Timeout Value */
|
|
|
76daa3 |
#define PCI_EXP_DEVCTL2_ARI 0x0020 /* Alternative Routing-ID */
|
|
|
76daa3 |
#define PCI_EXP_DEVCTL2_ATOMIC_REQ 0x0040 /* Set Atomic requests */
|
|
|
76daa3 |
+#define PCI_EXP_DEVCTL2_ATOMIC_EGRESS_BLOCK 0x0080 /* Block atomic egress */
|
|
|
76daa3 |
#define PCI_EXP_DEVCTL2_IDO_REQ_EN 0x0100 /* Allow IDO for requests */
|
|
|
76daa3 |
#define PCI_EXP_DEVCTL2_IDO_CMP_EN 0x0200 /* Allow IDO for completions */
|
|
|
76daa3 |
#define PCI_EXP_DEVCTL2_LTR_EN 0x0400 /* Enable LTR mechanism */
|
|
|
76daa3 |
diff --git a/linux-headers/asm-arm/kvm.h b/linux-headers/asm-arm/kvm.h
|
|
|
76daa3 |
index 1101d55..7258a00 100644
|
|
|
76daa3 |
--- a/linux-headers/asm-arm/kvm.h
|
|
|
76daa3 |
+++ b/linux-headers/asm-arm/kvm.h
|
|
|
76daa3 |
@@ -27,6 +27,8 @@
|
|
|
76daa3 |
#define __KVM_HAVE_IRQ_LINE
|
|
|
76daa3 |
#define __KVM_HAVE_READONLY_MEM
|
|
|
76daa3 |
|
|
|
76daa3 |
+#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
|
|
|
76daa3 |
+
|
|
|
76daa3 |
#define KVM_REG_SIZE(id) \
|
|
|
76daa3 |
(1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT))
|
|
|
76daa3 |
|
|
|
76daa3 |
@@ -114,6 +116,8 @@ struct kvm_debug_exit_arch {
|
|
|
76daa3 |
};
|
|
|
76daa3 |
|
|
|
76daa3 |
struct kvm_sync_regs {
|
|
|
76daa3 |
+ /* Used with KVM_CAP_ARM_USER_IRQ */
|
|
|
76daa3 |
+ __u64 device_irq_level;
|
|
|
76daa3 |
};
|
|
|
76daa3 |
|
|
|
76daa3 |
struct kvm_arch_memory_slot {
|
|
|
76daa3 |
@@ -192,13 +196,17 @@ struct kvm_arch_memory_slot {
|
|
|
76daa3 |
#define KVM_DEV_ARM_VGIC_GRP_REDIST_REGS 5
|
|
|
76daa3 |
#define KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS 6
|
|
|
76daa3 |
#define KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO 7
|
|
|
76daa3 |
+#define KVM_DEV_ARM_VGIC_GRP_ITS_REGS 8
|
|
|
76daa3 |
#define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT 10
|
|
|
76daa3 |
#define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK \
|
|
|
76daa3 |
(0x3fffffULL << KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT)
|
|
|
76daa3 |
#define KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK 0x3ff
|
|
|
76daa3 |
#define VGIC_LEVEL_INFO_LINE_LEVEL 0
|
|
|
76daa3 |
|
|
|
76daa3 |
-#define KVM_DEV_ARM_VGIC_CTRL_INIT 0
|
|
|
76daa3 |
+#define KVM_DEV_ARM_VGIC_CTRL_INIT 0
|
|
|
76daa3 |
+#define KVM_DEV_ARM_ITS_SAVE_TABLES 1
|
|
|
76daa3 |
+#define KVM_DEV_ARM_ITS_RESTORE_TABLES 2
|
|
|
76daa3 |
+#define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3
|
|
|
76daa3 |
|
|
|
76daa3 |
/* KVM_IRQ_LINE irq field index values */
|
|
|
76daa3 |
#define KVM_ARM_IRQ_TYPE_SHIFT 24
|
|
|
76daa3 |
diff --git a/linux-headers/asm-arm/unistd-common.h b/linux-headers/asm-arm/unistd-common.h
|
|
|
76daa3 |
index 13a74af..8d5ceae 100644
|
|
|
76daa3 |
--- a/linux-headers/asm-arm/unistd-common.h
|
|
|
76daa3 |
+++ b/linux-headers/asm-arm/unistd-common.h
|
|
|
76daa3 |
@@ -353,5 +353,6 @@
|
|
|
76daa3 |
#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
|
|
|
76daa3 |
#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
|
|
|
76daa3 |
#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
|
|
|
76daa3 |
+#define __NR_statx (__NR_SYSCALL_BASE + 397)
|
|
|
76daa3 |
|
|
|
76daa3 |
#endif /* _ASM_ARM_UNISTD_COMMON_H */
|
|
|
76daa3 |
diff --git a/linux-headers/asm-arm64/kvm.h b/linux-headers/asm-arm64/kvm.h
|
|
|
76daa3 |
index 651ec30..31bb1dd 100644
|
|
|
76daa3 |
--- a/linux-headers/asm-arm64/kvm.h
|
|
|
76daa3 |
+++ b/linux-headers/asm-arm64/kvm.h
|
|
|
76daa3 |
@@ -39,6 +39,8 @@
|
|
|
76daa3 |
#define __KVM_HAVE_IRQ_LINE
|
|
|
76daa3 |
#define __KVM_HAVE_READONLY_MEM
|
|
|
76daa3 |
|
|
|
76daa3 |
+#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
|
|
|
76daa3 |
+
|
|
|
76daa3 |
#define KVM_REG_SIZE(id) \
|
|
|
76daa3 |
(1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT))
|
|
|
76daa3 |
|
|
|
76daa3 |
@@ -143,6 +145,8 @@ struct kvm_debug_exit_arch {
|
|
|
76daa3 |
#define KVM_GUESTDBG_USE_HW (1 << 17)
|
|
|
76daa3 |
|
|
|
76daa3 |
struct kvm_sync_regs {
|
|
|
76daa3 |
+ /* Used with KVM_CAP_ARM_USER_IRQ */
|
|
|
76daa3 |
+ __u64 device_irq_level;
|
|
|
76daa3 |
};
|
|
|
76daa3 |
|
|
|
76daa3 |
struct kvm_arch_memory_slot {
|
|
|
76daa3 |
@@ -212,13 +216,17 @@ struct kvm_arch_memory_slot {
|
|
|
76daa3 |
#define KVM_DEV_ARM_VGIC_GRP_REDIST_REGS 5
|
|
|
76daa3 |
#define KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS 6
|
|
|
76daa3 |
#define KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO 7
|
|
|
76daa3 |
+#define KVM_DEV_ARM_VGIC_GRP_ITS_REGS 8
|
|
|
76daa3 |
#define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT 10
|
|
|
76daa3 |
#define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK \
|
|
|
76daa3 |
(0x3fffffULL << KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT)
|
|
|
76daa3 |
#define KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK 0x3ff
|
|
|
76daa3 |
#define VGIC_LEVEL_INFO_LINE_LEVEL 0
|
|
|
76daa3 |
|
|
|
76daa3 |
-#define KVM_DEV_ARM_VGIC_CTRL_INIT 0
|
|
|
76daa3 |
+#define KVM_DEV_ARM_VGIC_CTRL_INIT 0
|
|
|
76daa3 |
+#define KVM_DEV_ARM_ITS_SAVE_TABLES 1
|
|
|
76daa3 |
+#define KVM_DEV_ARM_ITS_RESTORE_TABLES 2
|
|
|
76daa3 |
+#define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3
|
|
|
76daa3 |
|
|
|
76daa3 |
/* Device Control API on vcpu fd */
|
|
|
76daa3 |
#define KVM_ARM_VCPU_PMU_V3_CTRL 0
|
|
|
76daa3 |
diff --git a/linux-headers/asm-powerpc/kvm.h b/linux-headers/asm-powerpc/kvm.h
|
|
|
76daa3 |
index 4edbe4b..07fbeb9 100644
|
|
|
76daa3 |
--- a/linux-headers/asm-powerpc/kvm.h
|
|
|
76daa3 |
+++ b/linux-headers/asm-powerpc/kvm.h
|
|
|
76daa3 |
@@ -29,6 +29,9 @@
|
|
|
76daa3 |
#define __KVM_HAVE_IRQ_LINE
|
|
|
76daa3 |
#define __KVM_HAVE_GUEST_DEBUG
|
|
|
76daa3 |
|
|
|
76daa3 |
+/* Not always available, but if it is, this is the correct offset. */
|
|
|
76daa3 |
+#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
|
|
|
76daa3 |
+
|
|
|
76daa3 |
struct kvm_regs {
|
|
|
76daa3 |
__u64 pc;
|
|
|
76daa3 |
__u64 cr;
|
|
|
76daa3 |
diff --git a/linux-headers/asm-powerpc/unistd.h b/linux-headers/asm-powerpc/unistd.h
|
|
|
76daa3 |
index 598043c..a178634 100644
|
|
|
76daa3 |
--- a/linux-headers/asm-powerpc/unistd.h
|
|
|
76daa3 |
+++ b/linux-headers/asm-powerpc/unistd.h
|
|
|
76daa3 |
@@ -393,5 +393,6 @@
|
|
|
76daa3 |
#define __NR_preadv2 380
|
|
|
76daa3 |
#define __NR_pwritev2 381
|
|
|
76daa3 |
#define __NR_kexec_file_load 382
|
|
|
76daa3 |
+#define __NR_statx 383
|
|
|
76daa3 |
|
|
|
76daa3 |
#endif /* _ASM_POWERPC_UNISTD_H_ */
|
|
|
76daa3 |
diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h
|
|
|
76daa3 |
index ac63ca6..243f195 100644
|
|
|
76daa3 |
--- a/linux-headers/asm-s390/kvm.h
|
|
|
76daa3 |
+++ b/linux-headers/asm-s390/kvm.h
|
|
|
76daa3 |
@@ -26,6 +26,8 @@
|
|
|
76daa3 |
#define KVM_DEV_FLIC_ADAPTER_REGISTER 6
|
|
|
76daa3 |
#define KVM_DEV_FLIC_ADAPTER_MODIFY 7
|
|
|
76daa3 |
#define KVM_DEV_FLIC_CLEAR_IO_IRQ 8
|
|
|
76daa3 |
+#define KVM_DEV_FLIC_AISM 9
|
|
|
76daa3 |
+#define KVM_DEV_FLIC_AIRQ_INJECT 10
|
|
|
76daa3 |
/*
|
|
|
76daa3 |
* We can have up to 4*64k pending subchannels + 8 adapter interrupts,
|
|
|
76daa3 |
* as well as up to ASYNC_PF_PER_VCPU*KVM_MAX_VCPUS pfault done interrupts.
|
|
|
76daa3 |
@@ -41,7 +43,14 @@ struct kvm_s390_io_adapter {
|
|
|
76daa3 |
__u8 isc;
|
|
|
76daa3 |
__u8 maskable;
|
|
|
76daa3 |
__u8 swap;
|
|
|
76daa3 |
- __u8 pad;
|
|
|
76daa3 |
+ __u8 flags;
|
|
|
76daa3 |
+};
|
|
|
76daa3 |
+
|
|
|
76daa3 |
+#define KVM_S390_ADAPTER_SUPPRESSIBLE 0x01
|
|
|
76daa3 |
+
|
|
|
76daa3 |
+struct kvm_s390_ais_req {
|
|
|
76daa3 |
+ __u8 isc;
|
|
|
76daa3 |
+ __u16 mode;
|
|
|
76daa3 |
};
|
|
|
76daa3 |
|
|
|
76daa3 |
#define KVM_S390_IO_ADAPTER_MASK 1
|
|
|
76daa3 |
@@ -110,6 +119,7 @@ struct kvm_s390_vm_cpu_machine {
|
|
|
76daa3 |
#define KVM_S390_VM_CPU_FEAT_CMMA 10
|
|
|
76daa3 |
#define KVM_S390_VM_CPU_FEAT_PFMFI 11
|
|
|
76daa3 |
#define KVM_S390_VM_CPU_FEAT_SIGPIF 12
|
|
|
76daa3 |
+#define KVM_S390_VM_CPU_FEAT_KSS 13
|
|
|
76daa3 |
struct kvm_s390_vm_cpu_feat {
|
|
|
76daa3 |
__u64 feat[16];
|
|
|
76daa3 |
};
|
|
|
76daa3 |
@@ -131,7 +141,8 @@ struct kvm_s390_vm_cpu_subfunc {
|
|
|
76daa3 |
__u8 kmo[16]; /* with MSA4 */
|
|
|
76daa3 |
__u8 pcc[16]; /* with MSA4 */
|
|
|
76daa3 |
__u8 ppno[16]; /* with MSA5 */
|
|
|
76daa3 |
- __u8 reserved[1824];
|
|
|
76daa3 |
+ __u8 kma[16]; /* with MSA8 */
|
|
|
76daa3 |
+ __u8 reserved[1808];
|
|
|
76daa3 |
};
|
|
|
76daa3 |
|
|
|
76daa3 |
/* kvm attributes for crypto */
|
|
|
76daa3 |
@@ -197,6 +208,10 @@ struct kvm_guest_debug_arch {
|
|
|
76daa3 |
#define KVM_SYNC_VRS (1UL << 6)
|
|
|
76daa3 |
#define KVM_SYNC_RICCB (1UL << 7)
|
|
|
76daa3 |
#define KVM_SYNC_FPRS (1UL << 8)
|
|
|
76daa3 |
+#define KVM_SYNC_GSCB (1UL << 9)
|
|
|
76daa3 |
+/* length and alignment of the sdnx as a power of two */
|
|
|
76daa3 |
+#define SDNXC 8
|
|
|
76daa3 |
+#define SDNXL (1UL << SDNXC)
|
|
|
76daa3 |
/* definition of registers in kvm_run */
|
|
|
76daa3 |
struct kvm_sync_regs {
|
|
|
76daa3 |
__u64 prefix; /* prefix register */
|
|
|
76daa3 |
@@ -217,8 +232,16 @@ struct kvm_sync_regs {
|
|
|
76daa3 |
};
|
|
|
76daa3 |
__u8 reserved[512]; /* for future vector expansion */
|
|
|
76daa3 |
__u32 fpc; /* valid on KVM_SYNC_VRS or KVM_SYNC_FPRS */
|
|
|
76daa3 |
- __u8 padding[52]; /* riccb needs to be 64byte aligned */
|
|
|
76daa3 |
+ __u8 padding1[52]; /* riccb needs to be 64byte aligned */
|
|
|
76daa3 |
__u8 riccb[64]; /* runtime instrumentation controls block */
|
|
|
76daa3 |
+ __u8 padding2[192]; /* sdnx needs to be 256byte aligned */
|
|
|
76daa3 |
+ union {
|
|
|
76daa3 |
+ __u8 sdnx[SDNXL]; /* state description annex */
|
|
|
76daa3 |
+ struct {
|
|
|
76daa3 |
+ __u64 reserved1[2];
|
|
|
76daa3 |
+ __u64 gscb[4];
|
|
|
76daa3 |
+ };
|
|
|
76daa3 |
+ };
|
|
|
76daa3 |
};
|
|
|
76daa3 |
|
|
|
76daa3 |
#define KVM_REG_S390_TODPR (KVM_REG_S390 | KVM_REG_SIZE_U32 | 0x1)
|
|
|
76daa3 |
diff --git a/linux-headers/asm-s390/unistd.h b/linux-headers/asm-s390/unistd.h
|
|
|
76daa3 |
index 8a404fd..65e7e59 100644
|
|
|
76daa3 |
--- a/linux-headers/asm-s390/unistd.h
|
|
|
76daa3 |
+++ b/linux-headers/asm-s390/unistd.h
|
|
|
76daa3 |
@@ -313,7 +313,9 @@
|
|
|
76daa3 |
#define __NR_copy_file_range 375
|
|
|
76daa3 |
#define __NR_preadv2 376
|
|
|
76daa3 |
#define __NR_pwritev2 377
|
|
|
76daa3 |
-#define NR_syscalls 378
|
|
|
76daa3 |
+#define __NR_s390_guarded_storage 378
|
|
|
76daa3 |
+#define __NR_statx 379
|
|
|
76daa3 |
+#define NR_syscalls 380
|
|
|
76daa3 |
|
|
|
76daa3 |
/*
|
|
|
76daa3 |
* There are some system calls that are not present on 64 bit, some
|
|
|
76daa3 |
diff --git a/linux-headers/asm-x86/kvm.h b/linux-headers/asm-x86/kvm.h
|
|
|
76daa3 |
index 739c0c5..c2824d0 100644
|
|
|
76daa3 |
--- a/linux-headers/asm-x86/kvm.h
|
|
|
76daa3 |
+++ b/linux-headers/asm-x86/kvm.h
|
|
|
76daa3 |
@@ -9,6 +9,9 @@
|
|
|
76daa3 |
#include <linux/types.h>
|
|
|
76daa3 |
#include <linux/ioctl.h>
|
|
|
76daa3 |
|
|
|
76daa3 |
+#define KVM_PIO_PAGE_OFFSET 1
|
|
|
76daa3 |
+#define KVM_COALESCED_MMIO_PAGE_OFFSET 2
|
|
|
76daa3 |
+
|
|
|
76daa3 |
#define DE_VECTOR 0
|
|
|
76daa3 |
#define DB_VECTOR 1
|
|
|
76daa3 |
#define BP_VECTOR 3
|
|
|
76daa3 |
diff --git a/linux-headers/asm-x86/unistd_32.h b/linux-headers/asm-x86/unistd_32.h
|
|
|
76daa3 |
index d45ea28..8a206df 100644
|
|
|
76daa3 |
--- a/linux-headers/asm-x86/unistd_32.h
|
|
|
76daa3 |
+++ b/linux-headers/asm-x86/unistd_32.h
|
|
|
76daa3 |
@@ -380,5 +380,7 @@
|
|
|
76daa3 |
#define __NR_pkey_mprotect 380
|
|
|
76daa3 |
#define __NR_pkey_alloc 381
|
|
|
76daa3 |
#define __NR_pkey_free 382
|
|
|
76daa3 |
+#define __NR_statx 383
|
|
|
76daa3 |
+#define __NR_arch_prctl 384
|
|
|
76daa3 |
|
|
|
76daa3 |
#endif /* _ASM_X86_UNISTD_32_H */
|
|
|
76daa3 |
diff --git a/linux-headers/asm-x86/unistd_64.h b/linux-headers/asm-x86/unistd_64.h
|
|
|
76daa3 |
index e22db91..336c2e4 100644
|
|
|
76daa3 |
--- a/linux-headers/asm-x86/unistd_64.h
|
|
|
76daa3 |
+++ b/linux-headers/asm-x86/unistd_64.h
|
|
|
76daa3 |
@@ -333,5 +333,6 @@
|
|
|
76daa3 |
#define __NR_pkey_mprotect 329
|
|
|
76daa3 |
#define __NR_pkey_alloc 330
|
|
|
76daa3 |
#define __NR_pkey_free 331
|
|
|
76daa3 |
+#define __NR_statx 332
|
|
|
76daa3 |
|
|
|
76daa3 |
#endif /* _ASM_X86_UNISTD_64_H */
|
|
|
76daa3 |
diff --git a/linux-headers/asm-x86/unistd_x32.h b/linux-headers/asm-x86/unistd_x32.h
|
|
|
76daa3 |
index 84e58b2..cb98a52 100644
|
|
|
76daa3 |
--- a/linux-headers/asm-x86/unistd_x32.h
|
|
|
76daa3 |
+++ b/linux-headers/asm-x86/unistd_x32.h
|
|
|
76daa3 |
@@ -286,6 +286,7 @@
|
|
|
76daa3 |
#define __NR_pkey_mprotect (__X32_SYSCALL_BIT + 329)
|
|
|
76daa3 |
#define __NR_pkey_alloc (__X32_SYSCALL_BIT + 330)
|
|
|
76daa3 |
#define __NR_pkey_free (__X32_SYSCALL_BIT + 331)
|
|
|
76daa3 |
+#define __NR_statx (__X32_SYSCALL_BIT + 332)
|
|
|
76daa3 |
#define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
|
|
|
76daa3 |
#define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
|
|
|
76daa3 |
#define __NR_ioctl (__X32_SYSCALL_BIT + 514)
|
|
|
76daa3 |
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
|
|
|
76daa3 |
index 4e082a8..d2892da 100644
|
|
|
76daa3 |
--- a/linux-headers/linux/kvm.h
|
|
|
76daa3 |
+++ b/linux-headers/linux/kvm.h
|
|
|
76daa3 |
@@ -702,6 +702,10 @@ struct kvm_ppc_resize_hpt {
|
|
|
76daa3 |
#define KVM_VM_PPC_HV 1
|
|
|
76daa3 |
#define KVM_VM_PPC_PR 2
|
|
|
76daa3 |
|
|
|
76daa3 |
+/* on MIPS, 0 forces trap & emulate, 1 forces VZ ASE */
|
|
|
76daa3 |
+#define KVM_VM_MIPS_TE 0
|
|
|
76daa3 |
+#define KVM_VM_MIPS_VZ 1
|
|
|
76daa3 |
+
|
|
|
76daa3 |
#define KVM_S390_SIE_PAGE_OFFSET 1
|
|
|
76daa3 |
|
|
|
76daa3 |
/*
|
|
|
76daa3 |
@@ -883,6 +887,14 @@ struct kvm_ppc_resize_hpt {
|
|
|
76daa3 |
#define KVM_CAP_PPC_MMU_RADIX 134
|
|
|
76daa3 |
#define KVM_CAP_PPC_MMU_HASH_V3 135
|
|
|
76daa3 |
#define KVM_CAP_IMMEDIATE_EXIT 136
|
|
|
76daa3 |
+#define KVM_CAP_MIPS_VZ 137
|
|
|
76daa3 |
+#define KVM_CAP_MIPS_TE 138
|
|
|
76daa3 |
+#define KVM_CAP_MIPS_64BIT 139
|
|
|
76daa3 |
+#define KVM_CAP_S390_GS 140
|
|
|
76daa3 |
+#define KVM_CAP_S390_AIS 141
|
|
|
76daa3 |
+#define KVM_CAP_SPAPR_TCE_VFIO 142
|
|
|
76daa3 |
+#define KVM_CAP_X86_GUEST_MWAIT 143
|
|
|
76daa3 |
+#define KVM_CAP_ARM_USER_IRQ 144
|
|
|
76daa3 |
|
|
|
76daa3 |
#ifdef KVM_CAP_IRQ_ROUTING
|
|
|
76daa3 |
|
|
|
76daa3 |
@@ -1087,6 +1099,7 @@ struct kvm_device_attr {
|
|
|
76daa3 |
#define KVM_DEV_VFIO_GROUP 1
|
|
|
76daa3 |
#define KVM_DEV_VFIO_GROUP_ADD 1
|
|
|
76daa3 |
#define KVM_DEV_VFIO_GROUP_DEL 2
|
|
|
76daa3 |
+#define KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE 3
|
|
|
76daa3 |
|
|
|
76daa3 |
enum kvm_device_type {
|
|
|
76daa3 |
KVM_DEV_TYPE_FSL_MPIC_20 = 1,
|
|
|
76daa3 |
@@ -1108,6 +1121,11 @@ enum kvm_device_type {
|
|
|
76daa3 |
KVM_DEV_TYPE_MAX,
|
|
|
76daa3 |
};
|
|
|
76daa3 |
|
|
|
76daa3 |
+struct kvm_vfio_spapr_tce {
|
|
|
76daa3 |
+ __s32 groupfd;
|
|
|
76daa3 |
+ __s32 tablefd;
|
|
|
76daa3 |
+};
|
|
|
76daa3 |
+
|
|
|
76daa3 |
/*
|
|
|
76daa3 |
* ioctls for VM fds
|
|
|
76daa3 |
*/
|
|
|
76daa3 |
@@ -1354,4 +1372,11 @@ struct kvm_assigned_msix_entry {
|
|
|
76daa3 |
#define KVM_X2APIC_API_USE_32BIT_IDS (1ULL << 0)
|
|
|
76daa3 |
#define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK (1ULL << 1)
|
|
|
76daa3 |
|
|
|
76daa3 |
+/* Available with KVM_CAP_ARM_USER_IRQ */
|
|
|
76daa3 |
+
|
|
|
76daa3 |
+/* Bits for run->s.regs.device_irq_level */
|
|
|
76daa3 |
+#define KVM_ARM_DEV_EL1_VTIMER (1 << 0)
|
|
|
76daa3 |
+#define KVM_ARM_DEV_EL1_PTIMER (1 << 1)
|
|
|
76daa3 |
+#define KVM_ARM_DEV_PMU (1 << 2)
|
|
|
76daa3 |
+
|
|
|
76daa3 |
#endif /* __LINUX_KVM_H */
|
|
|
76daa3 |
diff --git a/linux-headers/linux/userfaultfd.h b/linux-headers/linux/userfaultfd.h
|
|
|
76daa3 |
index 2ed5dc3..9701772 100644
|
|
|
76daa3 |
--- a/linux-headers/linux/userfaultfd.h
|
|
|
76daa3 |
+++ b/linux-headers/linux/userfaultfd.h
|
|
|
76daa3 |
@@ -20,7 +20,8 @@
|
|
|
76daa3 |
#define UFFD_API ((__u64)0xAA)
|
|
|
76daa3 |
#define UFFD_API_FEATURES (UFFD_FEATURE_EVENT_FORK | \
|
|
|
76daa3 |
UFFD_FEATURE_EVENT_REMAP | \
|
|
|
76daa3 |
- UFFD_FEATURE_EVENT_MADVDONTNEED | \
|
|
|
76daa3 |
+ UFFD_FEATURE_EVENT_REMOVE | \
|
|
|
76daa3 |
+ UFFD_FEATURE_EVENT_UNMAP | \
|
|
|
76daa3 |
UFFD_FEATURE_MISSING_HUGETLBFS | \
|
|
|
76daa3 |
UFFD_FEATURE_MISSING_SHMEM)
|
|
|
76daa3 |
#define UFFD_API_IOCTLS \
|
|
|
76daa3 |
@@ -92,7 +93,7 @@ struct uffd_msg {
|
|
|
76daa3 |
struct {
|
|
|
76daa3 |
__u64 start;
|
|
|
76daa3 |
__u64 end;
|
|
|
76daa3 |
- } madv_dn;
|
|
|
76daa3 |
+ } remove;
|
|
|
76daa3 |
|
|
|
76daa3 |
struct {
|
|
|
76daa3 |
/* unused reserved fields */
|
|
|
76daa3 |
@@ -109,7 +110,8 @@ struct uffd_msg {
|
|
|
76daa3 |
#define UFFD_EVENT_PAGEFAULT 0x12
|
|
|
76daa3 |
#define UFFD_EVENT_FORK 0x13
|
|
|
76daa3 |
#define UFFD_EVENT_REMAP 0x14
|
|
|
76daa3 |
-#define UFFD_EVENT_MADVDONTNEED 0x15
|
|
|
76daa3 |
+#define UFFD_EVENT_REMOVE 0x15
|
|
|
76daa3 |
+#define UFFD_EVENT_UNMAP 0x16
|
|
|
76daa3 |
|
|
|
76daa3 |
/* flags for UFFD_EVENT_PAGEFAULT */
|
|
|
76daa3 |
#define UFFD_PAGEFAULT_FLAG_WRITE (1<<0) /* If this was a write fault */
|
|
|
76daa3 |
@@ -155,9 +157,10 @@ struct uffdio_api {
|
|
|
76daa3 |
#define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)
|
|
|
76daa3 |
#define UFFD_FEATURE_EVENT_FORK (1<<1)
|
|
|
76daa3 |
#define UFFD_FEATURE_EVENT_REMAP (1<<2)
|
|
|
76daa3 |
-#define UFFD_FEATURE_EVENT_MADVDONTNEED (1<<3)
|
|
|
76daa3 |
+#define UFFD_FEATURE_EVENT_REMOVE (1<<3)
|
|
|
76daa3 |
#define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4)
|
|
|
76daa3 |
#define UFFD_FEATURE_MISSING_SHMEM (1<<5)
|
|
|
76daa3 |
+#define UFFD_FEATURE_EVENT_UNMAP (1<<6)
|
|
|
76daa3 |
__u64 features;
|
|
|
76daa3 |
|
|
|
76daa3 |
__u64 ioctls;
|
|
|
76daa3 |
diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h
|
|
|
76daa3 |
index 531cb2e..4e7ab4c 100644
|
|
|
76daa3 |
--- a/linux-headers/linux/vfio.h
|
|
|
76daa3 |
+++ b/linux-headers/linux/vfio.h
|
|
|
76daa3 |
@@ -198,6 +198,7 @@ struct vfio_device_info {
|
|
|
76daa3 |
#define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */
|
|
|
76daa3 |
#define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */
|
|
|
76daa3 |
#define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */
|
|
|
76daa3 |
+#define VFIO_DEVICE_FLAGS_CCW (1 << 4) /* vfio-ccw device */
|
|
|
76daa3 |
__u32 num_regions; /* Max region index + 1 */
|
|
|
76daa3 |
__u32 num_irqs; /* Max IRQ index + 1 */
|
|
|
76daa3 |
};
|
|
|
76daa3 |
@@ -212,6 +213,7 @@ struct vfio_device_info {
|
|
|
76daa3 |
#define VFIO_DEVICE_API_PCI_STRING "vfio-pci"
|
|
|
76daa3 |
#define VFIO_DEVICE_API_PLATFORM_STRING "vfio-platform"
|
|
|
76daa3 |
#define VFIO_DEVICE_API_AMBA_STRING "vfio-amba"
|
|
|
76daa3 |
+#define VFIO_DEVICE_API_CCW_STRING "vfio-ccw"
|
|
|
76daa3 |
|
|
|
76daa3 |
/**
|
|
|
76daa3 |
* VFIO_DEVICE_GET_REGION_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 8,
|
|
|
76daa3 |
@@ -446,6 +448,22 @@ enum {
|
|
|
76daa3 |
VFIO_PCI_NUM_IRQS
|
|
|
76daa3 |
};
|
|
|
76daa3 |
|
|
|
76daa3 |
+/*
|
|
|
76daa3 |
+ * The vfio-ccw bus driver makes use of the following fixed region and
|
|
|
76daa3 |
+ * IRQ index mapping. Unimplemented regions return a size of zero.
|
|
|
76daa3 |
+ * Unimplemented IRQ types return a count of zero.
|
|
|
76daa3 |
+ */
|
|
|
76daa3 |
+
|
|
|
76daa3 |
+enum {
|
|
|
76daa3 |
+ VFIO_CCW_CONFIG_REGION_INDEX,
|
|
|
76daa3 |
+ VFIO_CCW_NUM_REGIONS
|
|
|
76daa3 |
+};
|
|
|
76daa3 |
+
|
|
|
76daa3 |
+enum {
|
|
|
76daa3 |
+ VFIO_CCW_IO_IRQ_INDEX,
|
|
|
76daa3 |
+ VFIO_CCW_NUM_IRQS
|
|
|
76daa3 |
+};
|
|
|
76daa3 |
+
|
|
|
76daa3 |
/**
|
|
|
76daa3 |
* VFIO_DEVICE_GET_PCI_HOT_RESET_INFO - _IORW(VFIO_TYPE, VFIO_BASE + 12,
|
|
|
76daa3 |
* struct vfio_pci_hot_reset_info)
|
|
|
76daa3 |
diff --git a/linux-headers/linux/vfio_ccw.h b/linux-headers/linux/vfio_ccw.h
|
|
|
76daa3 |
new file mode 100644
|
|
|
76daa3 |
index 0000000..3a56551
|
|
|
76daa3 |
--- /dev/null
|
|
|
76daa3 |
+++ b/linux-headers/linux/vfio_ccw.h
|
|
|
76daa3 |
@@ -0,0 +1,24 @@
|
|
|
76daa3 |
+/*
|
|
|
76daa3 |
+ * Interfaces for vfio-ccw
|
|
|
76daa3 |
+ *
|
|
|
76daa3 |
+ * Copyright IBM Corp. 2017
|
|
|
76daa3 |
+ *
|
|
|
76daa3 |
+ * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
|
|
|
76daa3 |
+ */
|
|
|
76daa3 |
+
|
|
|
76daa3 |
+#ifndef _VFIO_CCW_H_
|
|
|
76daa3 |
+#define _VFIO_CCW_H_
|
|
|
76daa3 |
+
|
|
|
76daa3 |
+#include <linux/types.h>
|
|
|
76daa3 |
+
|
|
|
76daa3 |
+struct ccw_io_region {
|
|
|
76daa3 |
+#define ORB_AREA_SIZE 12
|
|
|
76daa3 |
+ __u8 orb_area[ORB_AREA_SIZE];
|
|
|
76daa3 |
+#define SCSW_AREA_SIZE 12
|
|
|
76daa3 |
+ __u8 scsw_area[SCSW_AREA_SIZE];
|
|
|
76daa3 |
+#define IRB_AREA_SIZE 96
|
|
|
76daa3 |
+ __u8 irb_area[IRB_AREA_SIZE];
|
|
|
76daa3 |
+ __u32 ret_code;
|
|
|
76daa3 |
+} __attribute__((packed));
|
|
|
76daa3 |
+
|
|
|
76daa3 |
+#endif
|
|
|
76daa3 |
diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers.sh
|
|
|
76daa3 |
index 6a370a8..2f906c4 100755
|
|
|
76daa3 |
--- a/scripts/update-linux-headers.sh
|
|
|
76daa3 |
+++ b/scripts/update-linux-headers.sh
|
|
|
76daa3 |
@@ -113,7 +113,7 @@ done
|
|
|
76daa3 |
|
|
|
76daa3 |
rm -rf "$output/linux-headers/linux"
|
|
|
76daa3 |
mkdir -p "$output/linux-headers/linux"
|
|
|
76daa3 |
-for header in kvm.h kvm_para.h vfio.h vhost.h \
|
|
|
76daa3 |
+for header in kvm.h kvm_para.h vfio.h vfio_ccw.h vhost.h \
|
|
|
76daa3 |
psci.h userfaultfd.h; do
|
|
|
76daa3 |
cp "$tmpdir/include/linux/$header" "$output/linux-headers/linux"
|
|
|
76daa3 |
done
|
|
|
76daa3 |
--
|
|
|
76daa3 |
1.8.3.1
|
|
|
76daa3 |
|