On Tue, 17 May 2022 16:36:26 +0000 Janosch Frank <frankja@xxxxxxxxxxxxx> wrote: > The capability indicates dump support for protected VMs. > > Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> Reviewed-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> > --- > arch/s390/kvm/kvm-s390.c | 20 ++++++++++++++++++++ > include/uapi/linux/kvm.h | 1 + > 2 files changed, 21 insertions(+) > > diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c > index 1938756d4a32..99ce1aced86b 100644 > --- a/arch/s390/kvm/kvm-s390.c > +++ b/arch/s390/kvm/kvm-s390.c > @@ -606,6 +606,26 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) > case KVM_CAP_S390_PROTECTED: > r = is_prot_virt_host(); > break; > + case KVM_CAP_S390_PROTECTED_DUMP: { > + u64 pv_cmds_dump[] = { > + BIT_UVC_CMD_DUMP_INIT, > + BIT_UVC_CMD_DUMP_CONFIG_STOR_STATE, > + BIT_UVC_CMD_DUMP_CPU, > + BIT_UVC_CMD_DUMP_COMPLETE, > + }; > + int i; > + > + r = is_prot_virt_host(); > + > + for (i = 0; i < ARRAY_SIZE(pv_cmds_dump); i++) { > + if (!test_bit_inv(pv_cmds_dump[i], > + (unsigned long *)&uv_info.inst_calls_list)) { > + r = 0; > + break; > + } > + } > + break; > + } > default: > r = 0; > } > diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h > index 204b06e3a50b..108bc7b7a71b 100644 > --- a/include/uapi/linux/kvm.h > +++ b/include/uapi/linux/kvm.h > @@ -1144,6 +1144,7 @@ struct kvm_ppc_resize_hpt { > #define KVM_CAP_S390_MEM_OP_EXTENSION 211 > #define KVM_CAP_PMU_CAPABILITY 212 > #define KVM_CAP_DISABLE_QUIRKS2 213 > +#define KVM_CAP_S390_PROTECTED_DUMP 214 > > #ifdef KVM_CAP_IRQ_ROUTING >