mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
KVM: s390: Add KVM capability for ESA mode guests
Now that all the bits are properly addressed, provide a mechanism for testing ESA mode guests in nested configurations. Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> [farman@us.ibm.com: Updated commit message] Reviewed-by: Janosch Frank <frankja@linux.ibm.com> Signed-off-by: Eric Farman <farman@linux.ibm.com> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
This commit is contained in:
parent
c0dcada088
commit
4aebd7d5c7
|
|
@ -9428,6 +9428,14 @@ KVM exits with the register state of either the L1 or L2 guest
|
||||||
depending on which executed at the time of an exit. Userspace must
|
depending on which executed at the time of an exit. Userspace must
|
||||||
take care to differentiate between these cases.
|
take care to differentiate between these cases.
|
||||||
|
|
||||||
|
8.47 KVM_CAP_S390_VSIE_ESAMODE
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
:Architectures: s390
|
||||||
|
|
||||||
|
The presence of this capability indicates that the nested KVM guest can
|
||||||
|
start in ESA mode.
|
||||||
|
|
||||||
9. Known KVM API problems
|
9. Known KVM API problems
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -629,6 +629,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
|
||||||
case KVM_CAP_IRQFD_RESAMPLE:
|
case KVM_CAP_IRQFD_RESAMPLE:
|
||||||
case KVM_CAP_S390_USER_OPEREXEC:
|
case KVM_CAP_S390_USER_OPEREXEC:
|
||||||
case KVM_CAP_S390_KEYOP:
|
case KVM_CAP_S390_KEYOP:
|
||||||
|
case KVM_CAP_S390_VSIE_ESAMODE:
|
||||||
r = 1;
|
r = 1;
|
||||||
break;
|
break;
|
||||||
case KVM_CAP_SET_GUEST_DEBUG2:
|
case KVM_CAP_SET_GUEST_DEBUG2:
|
||||||
|
|
@ -926,6 +927,11 @@ int kvm_vm_ioctl_enable_cap(struct kvm *kvm, struct kvm_enable_cap *cap)
|
||||||
icpt_operexc_on_all_vcpus(kvm);
|
icpt_operexc_on_all_vcpus(kvm);
|
||||||
r = 0;
|
r = 0;
|
||||||
break;
|
break;
|
||||||
|
case KVM_CAP_S390_VSIE_ESAMODE:
|
||||||
|
VM_EVENT(kvm, 3, "%s", "ENABLE: CAP_S390_VSIE_ESAMODE");
|
||||||
|
kvm->arch.allow_vsie_esamode = 1;
|
||||||
|
r = 0;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
r = -EINVAL;
|
r = -EINVAL;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -985,6 +985,7 @@ struct kvm_enable_cap {
|
||||||
#define KVM_CAP_ARM_SEA_TO_USER 245
|
#define KVM_CAP_ARM_SEA_TO_USER 245
|
||||||
#define KVM_CAP_S390_USER_OPEREXEC 246
|
#define KVM_CAP_S390_USER_OPEREXEC 246
|
||||||
#define KVM_CAP_S390_KEYOP 247
|
#define KVM_CAP_S390_KEYOP 247
|
||||||
|
#define KVM_CAP_S390_VSIE_ESAMODE 248
|
||||||
|
|
||||||
struct kvm_irq_routing_irqchip {
|
struct kvm_irq_routing_irqchip {
|
||||||
__u32 irqchip;
|
__u32 irqchip;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user