On Tue, 13 Oct 2015, Qais Yousef wrote: > > +#ifdef CONFIG_GENERIC_IRQ_IPI > +void generic_smp_send_ipi_single(int cpu, unsigned int action) Please use a mips name space. This suggests that it s completely generic, which is not true. > +{ > + generic_smp_send_ipi_mask(cpumask_of(cpu), action); > +} > + > +void generic_smp_send_ipi_mask(const struct cpumask *mask, unsigned int action) Ditto. > +{ > + unsigned long flags; > + unsigned int core; > + int cpu; > + struct ipi_mask ipi_mask; > + > + ipi_mask.cpumask = ((struct cpumask *)mask)->bits; We have accessors for that. Hmm, so for this case we must make the ipi_mask different: struct ipi_mask { unsigned int nbits; bool global; union { struct cpumask *mask; unsigned long cpu_bitmap[]; }; }; Thanks, tglx