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 | 474 | __u32 size; /* amount of bytes */ |
| 475 | 475 | __u32 op; /* type of operation */ |
| 476 | 476 | __u64 buf; /* buffer in userspace */ |
| 477 | − __u8 ar; /* the access register number */ | |
| 478 | − __u8 reserved[31]; /* should be set to 0 */ | |
| 477 | + union { | |
| 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 | 483 | /* types for kvm_s390_mem_op->op */ |
| 481 | 484 | #define KVM_S390_MEMOP_LOGICAL_READ 0 |
| 482 | 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 | 488 | /* flags for kvm_s390_mem_op->flags */ |
| 484 | 489 | #define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0) |
| 485 | 490 | #define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1) |
| @@ -1010,6 +1015,8 @@ struct kvm_ppc_resize_hpt { · 524 unmodified lines | ||
| 1010 | 1015 | #define KVM_CAP_ARM_NISV_TO_USER 177 |
| 1011 | 1016 | #define KVM_CAP_ARM_INJECT_EXT_DABT 178 |
| 1012 | 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 | 1021 | #ifdef KVM_CAP_IRQ_ROUTING |
| 1015 | 1022 | |
| @@ -1478,6 +1485,39 @@ struct kvm_enc_region { · 462 unmodified lines | ||
| 1478 | 1485 | #define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3) |
| 1479 | 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 | 1521 | /* Secure Encrypted Virtualization command */ |
| 1482 | 1522 | enum sev_cmd_id { |
| 1483 | 1523 | /* Guest initialization commands */ |
| @@ -1628,4 +1668,7 @@ struct kvm_hyperv_eventfd { · 144 unmodified lines | ||
| 1628 | 1668 | #define KVM_HYPERV_CONN_ID_MASK 0x00ffffff |
| 1629 | 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 | 1674 | #endif /* __LINUX_KVM_H */ |