On 29/09/17 12:30, Andrew Jones wrote: > Introduce vcpu_should_sleep() in order to tidy several places up > that the compound 'power_off || pause' condition is used. > > Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> > --- > virt/kvm/arm/arm.c | 18 +++++++++++------- > 1 file changed, 11 insertions(+), 7 deletions(-) > > diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c > index b9f68e4add71..e4bec508ee5b 100644 > --- a/virt/kvm/arm/arm.c > +++ b/virt/kvm/arm/arm.c > @@ -403,17 +403,22 @@ int kvm_arch_vcpu_ioctl_set_mpstate(struct kvm_vcpu *vcpu, > return 0; > } > > +static bool vcpu_should_sleep(struct kvm_vcpu *vcpu) > +{ > + return vcpu->arch.power_off || vcpu->arch.pause; > +} > + > /** > * kvm_arch_vcpu_runnable - determine if the vcpu can be scheduled > - * @v: The VCPU pointer > + * @vcpu: The VCPU pointer > * > * If the guest CPU is not waiting for interrupts or an interrupt line is > * asserted, the CPU is by definition runnable. > */ > -int kvm_arch_vcpu_runnable(struct kvm_vcpu *v) > +int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu) > { > - return ((!!v->arch.irq_lines || kvm_vgic_vcpu_pending_irq(v)) > - && !v->arch.power_off && !v->arch.pause); > + return (!!vcpu->arch.irq_lines || kvm_vgic_vcpu_pending_irq(vcpu)) > + && !vcpu_should_sleep(vcpu); > } > > bool kvm_arch_vcpu_in_kernel(struct kvm_vcpu *vcpu) > @@ -570,10 +575,9 @@ static void vcpu_req_sleep(struct kvm_vcpu *vcpu) > { > struct swait_queue_head *wq = kvm_arch_vcpu_wq(vcpu); > > - swait_event_interruptible(*wq, ((!vcpu->arch.power_off) && > - (!vcpu->arch.pause))); > + swait_event_interruptible(*wq, !vcpu_should_sleep(vcpu)); > > - if (vcpu->arch.power_off || vcpu->arch.pause) { > + if (vcpu_should_sleep(vcpu)) { > /* Awaken to handle a signal, request we sleep again later. */ > kvm_make_request(KVM_REQ_SLEEP, vcpu); > } > Acked-by: Marc Zyngier <marc.zyngier@xxxxxxx> M. -- Jazz is not dead. It just smells funny... _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm