diff options
Diffstat (limited to 'virt/kvm/arm/arm.c')
-rw-r--r-- | virt/kvm/arm/arm.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c index 9e350fd34504..9c486fad3f9f 100644 --- a/virt/kvm/arm/arm.c +++ b/virt/kvm/arm/arm.c | |||
@@ -626,6 +626,13 @@ static void vcpu_req_sleep(struct kvm_vcpu *vcpu) | |||
626 | /* Awaken to handle a signal, request we sleep again later. */ | 626 | /* Awaken to handle a signal, request we sleep again later. */ |
627 | kvm_make_request(KVM_REQ_SLEEP, vcpu); | 627 | kvm_make_request(KVM_REQ_SLEEP, vcpu); |
628 | } | 628 | } |
629 | |||
630 | /* | ||
631 | * Make sure we will observe a potential reset request if we've | ||
632 | * observed a change to the power state. Pairs with the smp_wmb() in | ||
633 | * kvm_psci_vcpu_on(). | ||
634 | */ | ||
635 | smp_rmb(); | ||
629 | } | 636 | } |
630 | 637 | ||
631 | static int kvm_vcpu_initialized(struct kvm_vcpu *vcpu) | 638 | static int kvm_vcpu_initialized(struct kvm_vcpu *vcpu) |
@@ -639,6 +646,9 @@ static void check_vcpu_requests(struct kvm_vcpu *vcpu) | |||
639 | if (kvm_check_request(KVM_REQ_SLEEP, vcpu)) | 646 | if (kvm_check_request(KVM_REQ_SLEEP, vcpu)) |
640 | vcpu_req_sleep(vcpu); | 647 | vcpu_req_sleep(vcpu); |
641 | 648 | ||
649 | if (kvm_check_request(KVM_REQ_VCPU_RESET, vcpu)) | ||
650 | kvm_reset_vcpu(vcpu); | ||
651 | |||
642 | /* | 652 | /* |
643 | * Clear IRQ_PENDING requests that were made to guarantee | 653 | * Clear IRQ_PENDING requests that were made to guarantee |
644 | * that a VCPU sees new virtual interrupts. | 654 | * that a VCPU sees new virtual interrupts. |