• Sean Christopherson's avatar
    KVM: x86: Ignore sparse banks size for an "all CPUs", non-sparse IPI req · 3244867a
    Sean Christopherson authored
    Do not bail early if there are no bits set in the sparse banks for a
    non-sparse, a.k.a. "all CPUs", IPI request.  Per the Hyper-V spec, it is
    legal to have a variable length of '0', e.g. VP_SET's BankContents in
    this case, if the request can be serviced without the extra info.
    
      It is possible that for a given invocation of a hypercall that does
      accept variable sized input headers that all the header input fits
      entirely within the fixed size header. In such cases the variable sized
      input header is zero-sized and the corresponding bits in the hypercall
      input should be set to zero.
    
    Bailing early results in KVM failing to send IPIs to all CPUs as expected
    by the guest.
    
    Fixes: 214ff83d ("KVM: x86: hyperv: implement PV IPI send hypercalls")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Reviewed-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Message-Id: <20211207220926.718794-2-seanjc@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    3244867a
hyperv.c 66 KB