diff options
author | David Hildenbrand <dahi@linux.vnet.ibm.com> | 2016-02-12 06:24:20 -0500 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2016-06-21 03:43:35 -0400 |
commit | 535ef81c6e7910c0205f58a69ed6c765f8ba7f18 (patch) | |
tree | 3cc61b4be70204238f611950ec504d34ad228323 /arch/s390/kvm | |
parent | 3573602b20b061030c34b04f206b781857f155df (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.c | 7 |
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; |