I have no idea how I came to use __cpumask_set_cpu() there, the conversion should have been set_bit() -> __set_bit(). The wrong construct results in problems on systems with relatively few CPUs.
Reported-by: Sander Eikelenboom <li...@eikelenboom.it> Signed-off-by: Jan Beulich <jbeul...@suse.com> --- a/xen/common/softirq.c +++ b/xen/common/softirq.c @@ -106,7 +106,7 @@ void cpu_raise_softirq(unsigned int cpu, if ( !per_cpu(batching, this_cpu) || in_irq() ) smp_send_event_check_cpu(cpu); else - __cpumask_set_cpu(nr, &per_cpu(batch_mask, this_cpu)); + __set_bit(nr, &per_cpu(batch_mask, this_cpu)); } void cpu_raise_softirq_batch_begin(void)
correct mis-conversion set_bit() -> __cpumask_set_cpu() by 4aaca0e9cd I have no idea how I came to use __cpumask_set_cpu() there, the conversion should have been set_bit() -> __set_bit(). The wrong construct results in problems on systems with relatively few CPUs. Reported-by: Sander Eikelenboom <li...@eikelenboom.it> Signed-off-by: Jan Beulich <jbeul...@suse.com> --- a/xen/common/softirq.c +++ b/xen/common/softirq.c @@ -106,7 +106,7 @@ void cpu_raise_softirq(unsigned int cpu, if ( !per_cpu(batching, this_cpu) || in_irq() ) smp_send_event_check_cpu(cpu); else - __cpumask_set_cpu(nr, &per_cpu(batch_mask, this_cpu)); + __set_bit(nr, &per_cpu(batch_mask, this_cpu)); } void cpu_raise_softirq_batch_begin(void)
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel