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 Signed-off-by: Jan Beulich --- 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)