Hello Marc, On Tue, Jun 4, 2019 at 7:54 PM Marc Zyngier <marc.zyngier@xxxxxxx> wrote: > > On 04/06/2019 12:05, guoren@xxxxxxxxxx wrote: > > From: Guo Ren <ren_guo@xxxxxxxxx> > > > > The csky,mpintc could deliver a external irq to one cpu or all cpus, but > > it couldn't deliver a external irq to a group of cpus with cpu_mask. So > > we only use auto deliver mode when affinity mask_val is equal to > > cpu_present_mask. > > > > There is no limitation for only two cpus in SMP system. > > > > Signed-off-by: Guo Ren <ren_guo@xxxxxxxxx> > > Cc: Marc Zyngier <marc.zyngier@xxxxxxx> > > --- > > drivers/irqchip/irq-csky-mpintc.c | 15 +++++++++++++-- > > 1 file changed, 13 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/irqchip/irq-csky-mpintc.c b/drivers/irqchip/irq-csky-mpintc.c > > index a451a07..2740dd5 100644 > > --- a/drivers/irqchip/irq-csky-mpintc.c > > +++ b/drivers/irqchip/irq-csky-mpintc.c > > @@ -143,8 +143,19 @@ static int csky_irq_set_affinity(struct irq_data *d, > > if (cpu >= nr_cpu_ids) > > return -EINVAL; > > > > - /* Enable interrupt destination */ > > - cpu |= BIT(31); > > + /* > > + * The csky,mpintc could support auto irq deliver, but it only > > + * could deliver external irq to one cpu or all cpus. So it > > + * doesn't support deliver external irq to a group of cpus > > + * with cpu_mask. > > + * SO we only use auto deliver mode when affinity mask_val is > > + * equal to cpu_present_mask. > > + * > > + */ > > + if (cpumask_equal(mask_val, cpu_present_mask)) > > + cpu = 0; > > + else > > + cpu |= BIT(31); > > > > writel_relaxed(cpu, INTCG_base + INTCG_CIDSTR + offset); > > > > > > Isn't that the same patch as [1]? In which case, I've queued it as a fix > already. Yes, they are the same. It's duplicate. I think you've queued this one: https://lore.kernel.org/lkml/1558425245-20995-1-git-send-email-guoren@xxxxxxxxxx/ That's OK. Best Regards Guo Ren