Fix a bug where KVM incorrectly skips an "all_cpus" IPI request, and misc cleanups and enhancements for KVM handling of Hyper-V hypercalls. Note, I couldn't find any documentation on the DEBUG hypercalls, I'm basically just guessing that they don't have a variable sized header and thus should reject hypercalls with a non-zero VARHEAD field. Sean Christopherson (8): KVM: x86: Ignore sparse banks size for an "all CPUs", non-sparse IPI req KVM: x86: Get the number of Hyper-V sparse banks from the VARHEAD field KVM: x86: Refactor kvm_hv_flush_tlb() to reduce indentation KVM: x86: Add a helper to get the sparse VP_SET for IPIs and TLB flushes KVM: x86: Don't bother reading sparse banks that end up being ignored KVM: x86: Shove vp_bitmap handling down into sparse_set_to_vcpu_mask() KVM: x86: Reject fixeds-size Hyper-V hypercalls with non-zero "var_cnt" KVM: x86: Add checks for reserved-to-zero Hyper-V hypercall fields arch/x86/kvm/hyperv.c | 172 ++++++++++++++++++------------ arch/x86/kvm/trace.h | 14 +-- include/asm-generic/hyperv-tlfs.h | 7 ++ 3 files changed, 120 insertions(+), 73 deletions(-) -- 2.33.1.1089.g2158813163f-goog