From: Maya Nakamura <m.maya.nakamura@xxxxxxxxx> 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(¶ms->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 devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel