KVM: s390: Set CPU in stopped state on initial cpu reset
authorChristian Borntraeger <borntraeger@de.ibm.com>
Mon, 11 Jun 2012 14:06:57 +0000 (16:06 +0200)
committerMarcelo Tosatti <mtosatti@redhat.com>
Wed, 13 Jun 2012 23:53:45 +0000 (20:53 -0300)
The initial cpu reset sets the cpu in the stopped state.
Several places check for the cpu state (e.g. sigp set prefix) and
not setting the STOPPED state triggered errors with newer guest
kernels after reboot.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/s390/kvm/kvm-s390.c

index 664766d0c83c6a8461634c4dfd31679cf74c7b02..ace93603d86100f5d1e04cc39cd4e5fd87d0bebd 100644 (file)
@@ -347,6 +347,7 @@ static void kvm_s390_vcpu_initial_reset(struct kvm_vcpu *vcpu)
        vcpu->arch.guest_fpregs.fpc = 0;
        asm volatile("lfpc %0" : : "Q" (vcpu->arch.guest_fpregs.fpc));
        vcpu->arch.sie_block->gbea = 1;
+       atomic_set_mask(CPUSTAT_STOPPED, &vcpu->arch.sie_block->cpuflags);
 }
 
 int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)