|
@@ -2329,7 +2329,7 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
|
|
|
{
|
|
|
|
|
|
gmap_enable(vcpu->arch.enabled_gmap);
|
|
|
- atomic_or(CPUSTAT_RUNNING, &vcpu->arch.sie_block->cpuflags);
|
|
|
+ kvm_s390_set_cpuflags(vcpu, CPUSTAT_RUNNING);
|
|
|
if (vcpu->arch.cputm_enabled && !is_vcpu_idle(vcpu))
|
|
|
__start_cpu_timer_accounting(vcpu);
|
|
|
vcpu->cpu = cpu;
|
|
@@ -2436,9 +2436,9 @@ int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
|
|
|
CPUSTAT_STOPPED);
|
|
|
|
|
|
if (test_kvm_facility(vcpu->kvm, 78))
|
|
|
- atomic_or(CPUSTAT_GED2, &vcpu->arch.sie_block->cpuflags);
|
|
|
+ kvm_s390_set_cpuflags(vcpu, CPUSTAT_GED2);
|
|
|
else if (test_kvm_facility(vcpu->kvm, 8))
|
|
|
- atomic_or(CPUSTAT_GED, &vcpu->arch.sie_block->cpuflags);
|
|
|
+ kvm_s390_set_cpuflags(vcpu, CPUSTAT_GED);
|
|
|
|
|
|
kvm_s390_vcpu_setup_model(vcpu);
|
|
|
|
|
@@ -2475,7 +2475,7 @@ int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
|
|
|
vcpu->arch.sie_block->riccbd = (unsigned long) &vcpu->run->s.regs.riccb;
|
|
|
|
|
|
if (sclp.has_kss)
|
|
|
- atomic_or(CPUSTAT_KSS, &vcpu->arch.sie_block->cpuflags);
|
|
|
+ kvm_s390_set_cpuflags(vcpu, CPUSTAT_KSS);
|
|
|
else
|
|
|
vcpu->arch.sie_block->ictl |= ICTL_ISKE | ICTL_SSKE | ICTL_RRBE;
|
|
|
|
|
@@ -2578,7 +2578,7 @@ static void kvm_s390_vcpu_request_handled(struct kvm_vcpu *vcpu)
|
|
|
* return immediately. */
|
|
|
void exit_sie(struct kvm_vcpu *vcpu)
|
|
|
{
|
|
|
- atomic_or(CPUSTAT_STOP_INT, &vcpu->arch.sie_block->cpuflags);
|
|
|
+ kvm_s390_set_cpuflags(vcpu, CPUSTAT_STOP_INT);
|
|
|
while (vcpu->arch.sie_block->prog0c & PROG_IN_SIE)
|
|
|
cpu_relax();
|
|
|
}
|
|
@@ -2822,7 +2822,7 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
|
|
|
if (dbg->control & KVM_GUESTDBG_ENABLE) {
|
|
|
vcpu->guest_debug = dbg->control;
|
|
|
/* enforce guest PER */
|
|
|
- atomic_or(CPUSTAT_P, &vcpu->arch.sie_block->cpuflags);
|
|
|
+ kvm_s390_set_cpuflags(vcpu, CPUSTAT_P);
|
|
|
|
|
|
if (dbg->control & KVM_GUESTDBG_USE_HW_BP)
|
|
|
rc = kvm_s390_import_bp_data(vcpu, dbg);
|
|
@@ -2911,8 +2911,7 @@ retry:
|
|
|
if (kvm_check_request(KVM_REQ_ENABLE_IBS, vcpu)) {
|
|
|
if (!ibs_enabled(vcpu)) {
|
|
|
trace_kvm_s390_enable_disable_ibs(vcpu->vcpu_id, 1);
|
|
|
- atomic_or(CPUSTAT_IBS,
|
|
|
- &vcpu->arch.sie_block->cpuflags);
|
|
|
+ kvm_s390_set_cpuflags(vcpu, CPUSTAT_IBS);
|
|
|
}
|
|
|
goto retry;
|
|
|
}
|
|
@@ -3591,7 +3590,7 @@ void kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu)
|
|
|
/* SIGP STOP and SIGP STOP AND STORE STATUS has been fully processed */
|
|
|
kvm_s390_clear_stop_irq(vcpu);
|
|
|
|
|
|
- atomic_or(CPUSTAT_STOPPED, &vcpu->arch.sie_block->cpuflags);
|
|
|
+ kvm_s390_set_cpuflags(vcpu, CPUSTAT_STOPPED);
|
|
|
__disable_ibs_on_vcpu(vcpu);
|
|
|
|
|
|
for (i = 0; i < online_vcpus; i++) {
|