On 23/02/15 11:06, Jan Beulich wrote: > 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>
Insofar as this clearly corrects the identified regression, Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com> However, I am still not convinced that the resulting code is actually correct. batch_mask is a cpumask_t and used properly as a cpumask in cpumask_raise_softirq(). It is wrong to be putting softirq indices into it here. > > --- 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
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel