]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - arch/x86/hyperv/hv_apic.c
Merge branch 'x86/urgent' into x86/hyperv
[linux.git] / arch / x86 / hyperv / hv_apic.c
index 657a2b8c738a541c052ef971a1f0c9d656c55721..0c3c9f8fee77bbeaf2db91072b32b3c70d9205ee 100644 (file)
@@ -119,6 +119,8 @@ static bool __send_ipi_mask_ex(const struct cpumask *mask, int vector)
                ipi_arg->vp_set.format = HV_GENERIC_SET_SPARSE_4K;
                nr_bank = cpumask_to_vpset(&(ipi_arg->vp_set), mask);
        }
+       if (nr_bank < 0)
+               goto ipi_mask_ex_done;
        if (!nr_bank)
                ipi_arg->vp_set.format = HV_GENERIC_SET_ALL;
 
@@ -165,6 +167,9 @@ static bool __send_ipi_mask(const struct cpumask *mask, int vector)
 
        for_each_cpu(cur_cpu, mask) {
                vcpu = hv_cpu_number_to_vp_number(cur_cpu);
+               if (vcpu == VP_INVAL)
+                       return true;
+
                /*
                 * This particular version of the IPI hypercall can
                 * only target upto 64 CPUs.