aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kvm
diff options
context:
space:
mode:
authorDavid Hildenbrand <dahi@linux.vnet.ibm.com>2016-02-12 06:24:20 -0500
committerChristian Borntraeger <borntraeger@de.ibm.com>2016-06-21 03:43:35 -0400
commit535ef81c6e7910c0205f58a69ed6c765f8ba7f18 (patch)
tree3cc61b4be70204238f611950ec504d34ad228323 /arch/s390/kvm
parent3573602b20b061030c34b04f206b781857f155df (diff)
KVM: s390: vsie: support edat1 / edat2
If guest 2 is allowed to use edat 1 / edat 2, it can also set it up for guest 3, so let's properly check and forward the edat cpuflags. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/kvm')
-rw-r--r--arch/s390/kvm/vsie.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/s390/kvm/vsie.c b/arch/s390/kvm/vsie.c
index 1165baf78535..7c9835b0a33f 100644
--- a/arch/s390/kvm/vsie.c
+++ b/arch/s390/kvm/vsie.c
@@ -97,6 +97,13 @@ static int prepare_cpuflags(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
97 97
98 /* intervention requests will be set later */ 98 /* intervention requests will be set later */
99 newflags = CPUSTAT_ZARCH; 99 newflags = CPUSTAT_ZARCH;
100 if (cpuflags & CPUSTAT_GED && test_kvm_facility(vcpu->kvm, 8))
101 newflags |= CPUSTAT_GED;
102 if (cpuflags & CPUSTAT_GED2 && test_kvm_facility(vcpu->kvm, 78)) {
103 if (cpuflags & CPUSTAT_GED)
104 return set_validity_icpt(scb_s, 0x0001U);
105 newflags |= CPUSTAT_GED2;
106 }
100 107
101 atomic_set(&scb_s->cpuflags, newflags); 108 atomic_set(&scb_s->cpuflags, newflags);
102 return 0; 109 return 0;