Message ID | 20200220125638.7241-2-frankja@linux.ibm.com |
---|---|
State | New |
Headers | show |
Series | s390x: Protected Virtualization support | expand |
On 20.02.20 13:56, Janosch Frank wrote: > Signed-off-by: Janosch Frank <frankja@linux.ibm.com> > --- > linux-headers/linux/kvm.h | 46 +++++++++++++++++++++++++++++++++++---- > 1 file changed, 42 insertions(+), 4 deletions(-) > > diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h > index ec146bd52a..2e647f2d9b 100644 > --- a/linux-headers/linux/kvm.h > +++ b/linux-headers/linux/kvm.h > @@ -474,8 +474,11 @@ struct kvm_s390_mem_op { > __u32 size; /* amount of bytes */ > __u32 op; /* type of operation */ > __u64 buf; /* buffer in userspace */ > - __u8 ar; /* the access register number */ > - __u8 reserved[31]; /* should be set to 0 */ > + union { > + __u8 ar; /* the access register number */ > + __u32 sida_offset; /* offset into the sida */ > + __u8 reserved[32]; /* should be set to 0 */ > + }; > }; > /* types for kvm_s390_mem_op->op */ > #define KVM_S390_MEMOP_LOGICAL_READ 0 > @@ -1010,6 +1013,7 @@ struct kvm_ppc_resize_hpt { > #define KVM_CAP_ARM_NISV_TO_USER 177 > #define KVM_CAP_ARM_INJECT_EXT_DABT 178 > #define KVM_CAP_S390_VCPU_RESETS 179 > +#define KVM_CAP_S390_PROTECTED 180 > > #ifdef KVM_CAP_IRQ_ROUTING > > @@ -1474,8 +1478,42 @@ struct kvm_enc_region { > /* Available with KVM_CAP_ARM_SVE */ > #define KVM_ARM_VCPU_FINALIZE _IOW(KVMIO, 0xc2, int) > > -#define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3) > -#define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4) > +/* Available with KVM_CAP_S390_VCPU_RESETS */ > +#define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3) > +#define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4) Looks unrelated, but if that's part of the sync ...
On 2/25/20 10:42 AM, David Hildenbrand wrote: > On 20.02.20 13:56, Janosch Frank wrote: >> Signed-off-by: Janosch Frank <frankja@linux.ibm.com> >> --- >> linux-headers/linux/kvm.h | 46 +++++++++++++++++++++++++++++++++++---- >> 1 file changed, 42 insertions(+), 4 deletions(-) >> >> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h >> index ec146bd52a..2e647f2d9b 100644 >> --- a/linux-headers/linux/kvm.h >> +++ b/linux-headers/linux/kvm.h >> @@ -474,8 +474,11 @@ struct kvm_s390_mem_op { >> __u32 size; /* amount of bytes */ >> __u32 op; /* type of operation */ >> __u64 buf; /* buffer in userspace */ >> - __u8 ar; /* the access register number */ >> - __u8 reserved[31]; /* should be set to 0 */ >> + union { >> + __u8 ar; /* the access register number */ >> + __u32 sida_offset; /* offset into the sida */ >> + __u8 reserved[32]; /* should be set to 0 */ >> + }; >> }; >> /* types for kvm_s390_mem_op->op */ >> #define KVM_S390_MEMOP_LOGICAL_READ 0 >> @@ -1010,6 +1013,7 @@ struct kvm_ppc_resize_hpt { >> #define KVM_CAP_ARM_NISV_TO_USER 177 >> #define KVM_CAP_ARM_INJECT_EXT_DABT 178 >> #define KVM_CAP_S390_VCPU_RESETS 179 >> +#define KVM_CAP_S390_PROTECTED 180 >> >> #ifdef KVM_CAP_IRQ_ROUTING >> >> @@ -1474,8 +1478,42 @@ struct kvm_enc_region { >> /* Available with KVM_CAP_ARM_SVE */ >> #define KVM_ARM_VCPU_FINALIZE _IOW(KVMIO, 0xc2, int) >> >> -#define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3) >> -#define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4) >> +/* Available with KVM_CAP_S390_VCPU_RESETS */ >> +#define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3) >> +#define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4) > > Looks unrelated, but if that's part of the sync ... > Yeah, that doesn't belong here and was already removed a few days ago.
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h index ec146bd52a..2e647f2d9b 100644 --- a/linux-headers/linux/kvm.h +++ b/linux-headers/linux/kvm.h @@ -474,8 +474,11 @@ struct kvm_s390_mem_op { __u32 size; /* amount of bytes */ __u32 op; /* type of operation */ __u64 buf; /* buffer in userspace */ - __u8 ar; /* the access register number */ - __u8 reserved[31]; /* should be set to 0 */ + union { + __u8 ar; /* the access register number */ + __u32 sida_offset; /* offset into the sida */ + __u8 reserved[32]; /* should be set to 0 */ + }; }; /* types for kvm_s390_mem_op->op */ #define KVM_S390_MEMOP_LOGICAL_READ 0 @@ -1010,6 +1013,7 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_ARM_NISV_TO_USER 177 #define KVM_CAP_ARM_INJECT_EXT_DABT 178 #define KVM_CAP_S390_VCPU_RESETS 179 +#define KVM_CAP_S390_PROTECTED 180 #ifdef KVM_CAP_IRQ_ROUTING @@ -1474,8 +1478,42 @@ struct kvm_enc_region { /* Available with KVM_CAP_ARM_SVE */ #define KVM_ARM_VCPU_FINALIZE _IOW(KVMIO, 0xc2, int) -#define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3) -#define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4) +/* Available with KVM_CAP_S390_VCPU_RESETS */ +#define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3) +#define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4) + +struct kvm_s390_pv_sec_parm { + __u64 origin; + __u64 length; +}; + +struct kvm_s390_pv_unp { + __u64 addr; + __u64 size; + __u64 tweak; +}; + +enum pv_cmd_id { + KVM_PV_ENABLE, + KVM_PV_DISABLE, + KVM_PV_VM_SET_SEC_PARMS, + KVM_PV_VM_UNPACK, + KVM_PV_VM_VERIFY, + KVM_PV_VM_PREP_RESET, + KVM_PV_VM_UNSHARE_ALL, +}; + +struct kvm_pv_cmd { + __u32 cmd; /* Command to be executed */ + __u16 rc; /* Ultravisor return code */ + __u16 rrc; /* Ultravisor return reason code */ + __u64 data; /* Data or address */ + __u32 flags; /* flags for future extensions. Must be 0 for now */ + __u32 reserved[3]; +}; + +/* Available with KVM_CAP_S390_PROTECTED */ +#define KVM_S390_PV_COMMAND _IOWR(KVMIO, 0xc5, struct kvm_pv_cmd) /* Secure Encrypted Virtualization command */ enum sev_cmd_id {
Signed-off-by: Janosch Frank <frankja@linux.ibm.com> --- linux-headers/linux/kvm.h | 46 +++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-)