• Andrew Jones's avatar
    KVM: arm/arm64: properly use vcpu requests · 6a6d73be
    Andrew Jones authored
    arm/arm64 already has one VCPU request used when setting pause,
    but it doesn't properly check requests in VCPU RUN. Check it
    and also make sure we set vcpu->mode at the appropriate time
    (before the check) and with the appropriate barriers. See
    Documentation/virtual/kvm/vcpu-requests.rst. Also make sure we
    don't leave any vcpu requests we don't intend to handle later
    set in the request bitmap. If we don't clear them, then
    kvm_request_pending() may return true when it shouldn't.
    
    Using VCPU requests properly fixes a small race where pause
    could get set just as a VCPU was entering guest mode.
    Signed-off-by: default avatarAndrew Jones <drjones@redhat.com>
    Reviewed-by: default avatarChristoffer Dall <cdall@linaro.org>
    Signed-off-by: default avatarChristoffer Dall <cdall@linaro.org>
    6a6d73be
handle_exit.c 4.69 KB