To pick up the changes from: 9a5788c615f5 ("KVM: PPC: Book3S HV: Add a capability for enabling secure guests") 3c9bd4006bfc ("KVM: x86: enable dirty log gradually in small chunks") 13da9ae1cdbf ("KVM: s390: protvirt: introduce and enable KVM_CAP_S390_PROTECTED") e0d2773d487c ("KVM: s390: protvirt: UV calls in support of diag308 0, 1") 19e122776886 ("KVM: S390: protvirt: Introduce instruction data area bounce buffer") 29b40f105ec8 ("KVM: s390: protvirt: Add initial vm and cpu lifecycle handling") So far we're ignoring those arch specific ioctls, we need to revisit this at some time to have arch specific tables, etc: $ grep S390 tools/perf/trace/beauty/kvm_ioctl.sh egrep -v " ((ARM|PPC|S390)_|[GS]ET_(DEBUGREGS|PIT2|XSAVE|TSC_KHZ)|CREATE_SPAPR_TCE_64)" | \ $ This addresses these tools/perf build warnings: Warning: Kernel ABI header at 'tools/arch/arm/include/uapi/asm/kvm.h' differs from latest version at 'arch/arm/include/uapi/asm/kvm.h' diff -u tools/arch/arm/include/uapi/asm/kvm.h arch/arm/include/uapi/asm/kvm.h
Showing the changes to tools/include/uapi/linux (1 of 1 file). Show all
Unified · Split
| @@ -474,12 +474,17 @@ struct kvm_s390_mem_op { · 473 unmodified lines | |||
| 474 | __u32 size; /* amount of bytes */ | 474 | __u32 size; /* amount of bytes */ |
| 475 | __u32 op; /* type of operation */ | 475 | __u32 op; /* type of operation */ |
| 476 | __u64 buf; /* buffer in userspace */ | 476 | __u64 buf; /* buffer in userspace */ |
| 477 | __u8 ar; /* the access register number */ | 477 | union { |
| 478 | __u8 reserved[31]; /* should be set to 0 */ | 478 | __u8 ar; /* the access register number */ |
| 479 | __u32 sida_offset; /* offset into the sida */ | ||
| 480 | __u8 reserved[32]; /* should be set to 0 */ | ||
| 481 | }; | ||
| 479 | }; | 482 | }; |
| 480 | /* types for kvm_s390_mem_op->op */ | 483 | /* types for kvm_s390_mem_op->op */ |
| 481 | #define KVM_S390_MEMOP_LOGICAL_READ 0 | 484 | #define KVM_S390_MEMOP_LOGICAL_READ 0 |
| 482 | #define KVM_S390_MEMOP_LOGICAL_WRITE 1 | 485 | #define KVM_S390_MEMOP_LOGICAL_WRITE 1 |
| 486 | #define KVM_S390_MEMOP_SIDA_READ 2 | ||
| 487 | #define KVM_S390_MEMOP_SIDA_WRITE 3 | ||
| 483 | /* flags for kvm_s390_mem_op->flags */ | 488 | /* flags for kvm_s390_mem_op->flags */ |
| 484 | #define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0) | 489 | #define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0) |
| 485 | #define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1) | 490 | #define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1) |
| @@ -1010,6 +1015,8 @@ struct kvm_ppc_resize_hpt { · 524 unmodified lines | |||
| 1010 | #define KVM_CAP_ARM_NISV_TO_USER 177 | 1015 | #define KVM_CAP_ARM_NISV_TO_USER 177 |
| 1011 | #define KVM_CAP_ARM_INJECT_EXT_DABT 178 | 1016 | #define KVM_CAP_ARM_INJECT_EXT_DABT 178 |
| 1012 | #define KVM_CAP_S390_VCPU_RESETS 179 | 1017 | #define KVM_CAP_S390_VCPU_RESETS 179 |
| 1018 | #define KVM_CAP_S390_PROTECTED 180 | ||
| 1019 | #define KVM_CAP_PPC_SECURE_GUEST 181 | ||
| 1013 | 1020 | ||
| 1014 | #ifdef KVM_CAP_IRQ_ROUTING | 1021 | #ifdef KVM_CAP_IRQ_ROUTING |
| 1015 | 1022 | ||
| @@ -1478,6 +1485,39 @@ struct kvm_enc_region { · 462 unmodified lines | |||
| 1478 | #define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3) | 1485 | #define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3) |
| 1479 | #define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4) | 1486 | #define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4) |
| 1480 | 1487 | ||
| 1488 | struct kvm_s390_pv_sec_parm { | ||
| 1489 | __u64 origin; | ||
| 1490 | __u64 length; | ||
| 1491 | }; | ||
| 1492 | |||
| 1493 | struct kvm_s390_pv_unp { | ||
| 1494 | __u64 addr; | ||
| 1495 | __u64 size; | ||
| 1496 | __u64 tweak; | ||
| 1497 | }; | ||
| 1498 | |||
| 1499 | enum pv_cmd_id { | ||
| 1500 | KVM_PV_ENABLE, | ||
| 1501 | KVM_PV_DISABLE, | ||
| 1502 | KVM_PV_SET_SEC_PARMS, | ||
| 1503 | KVM_PV_UNPACK, | ||
| 1504 | KVM_PV_VERIFY, | ||
| 1505 | KVM_PV_PREP_RESET, | ||
| 1506 | KVM_PV_UNSHARE_ALL, | ||
| 1507 | }; | ||
| 1508 | |||
| 1509 | struct kvm_pv_cmd { | ||
| 1510 | __u32 cmd; /* Command to be executed */ | ||
| 1511 | __u16 rc; /* Ultravisor return code */ | ||
| 1512 | __u16 rrc; /* Ultravisor return reason code */ | ||
| 1513 | __u64 data; /* Data or address */ | ||
| 1514 | __u32 flags; /* flags for future extensions. Must be 0 for now */ | ||
| 1515 | __u32 reserved[3]; | ||
| 1516 | }; | ||
| 1517 | |||
| 1518 | /* Available with KVM_CAP_S390_PROTECTED */ | ||
| 1519 | #define KVM_S390_PV_COMMAND _IOWR(KVMIO, 0xc5, struct kvm_pv_cmd) | ||
| 1520 | |||
| 1481 | /* Secure Encrypted Virtualization command */ | 1521 | /* Secure Encrypted Virtualization command */ |
| 1482 | enum sev_cmd_id { | 1522 | enum sev_cmd_id { |
| 1483 | /* Guest initialization commands */ | 1523 | /* Guest initialization commands */ |
| @@ -1628,4 +1668,7 @@ struct kvm_hyperv_eventfd { · 144 unmodified lines | |||
| 1628 | #define KVM_HYPERV_CONN_ID_MASK 0x00ffffff | 1668 | #define KVM_HYPERV_CONN_ID_MASK 0x00ffffff |
| 1629 | #define KVM_HYPERV_EVENTFD_DEASSIGN (1 << 0) | 1669 | #define KVM_HYPERV_EVENTFD_DEASSIGN (1 << 0) |
| 1630 | 1670 | ||
| 1671 | #define KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE (1 << 0) | ||
| 1672 | #define KVM_DIRTY_LOG_INITIALLY_SET (1 << 1) | ||
| 1673 | |||
| 1631 | #endif /* __LINUX_KVM_H */ | 1674 | #endif /* __LINUX_KVM_H */ |