diff options
-rw-r--r-- | arch/s390/kvm/kvm-s390.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index b802ce6f675f..cdab57c5bc70 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c | |||
@@ -247,11 +247,16 @@ static void kvm_s390_vcpu_initial_reset(struct kvm_vcpu *vcpu) | |||
247 | vcpu->arch.sie_block->gbea = 1; | 247 | vcpu->arch.sie_block->gbea = 1; |
248 | } | 248 | } |
249 | 249 | ||
250 | /* The current code can have up to 256 pages for virtio */ | ||
251 | #define VIRTIODESCSPACE (256ul * 4096ul) | ||
252 | |||
250 | int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu) | 253 | int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu) |
251 | { | 254 | { |
252 | atomic_set(&vcpu->arch.sie_block->cpuflags, CPUSTAT_ZARCH); | 255 | atomic_set(&vcpu->arch.sie_block->cpuflags, CPUSTAT_ZARCH); |
253 | vcpu->arch.sie_block->gmslm = 0xffffffffffUL; | 256 | vcpu->arch.sie_block->gmslm = vcpu->kvm->arch.guest_memsize + |
254 | vcpu->arch.sie_block->gmsor = 0x000000000000; | 257 | vcpu->kvm->arch.guest_origin + |
258 | VIRTIODESCSPACE - 1ul; | ||
259 | vcpu->arch.sie_block->gmsor = vcpu->kvm->arch.guest_origin; | ||
255 | vcpu->arch.sie_block->ecb = 2; | 260 | vcpu->arch.sie_block->ecb = 2; |
256 | vcpu->arch.sie_block->eca = 0xC1002001U; | 261 | vcpu->arch.sie_block->eca = 0xC1002001U; |
257 | setup_timer(&vcpu->arch.ckc_timer, kvm_s390_idle_wakeup, | 262 | setup_timer(&vcpu->arch.ckc_timer, kvm_s390_idle_wakeup, |