From: Maya Nakamura <m.maya.nakam...@gmail.com>  Sent: Saturday, January 26, 
2019 12:55 AM
>
> @@ -953,29 +951,27 @@ static void hv_irq_unmask(struct irq_data *data)
>                */
>               params->int_target.flags |=
>                       HV_DEVICE_INTERRUPT_TARGET_PROCESSOR_SET;
> -             params->int_target.vp_set.valid_bank_mask =
> -                     (1ull << HV_VP_SET_BANK_COUNT_MAX) - 1;
> +
> +             if (!alloc_cpumask_var(&tmp, GFP_KERNEL)) {
> +                     res = 1;
> +                     goto exit_unlock;
> +             }
> +
> +             cpumask_and(tmp, dest, cpu_online_mask);
> +             nr_bank = cpumask_to_vpset(&params->int_target.vp_set, tmp);
> +             free_cpumask_var(tmp);
> +
> +             if (!nr_bank) {

There are two failures cases in cpumask_to_vpset().  One case returns
0, and the other case returns -1.  The above test only catches the 0
failure case.  Need to modify the test to catch both cases.

Michael

> +                     res = 1;
> +                     goto exit_unlock;
> +             }
> 

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to