Re: [PATCH v3.19] MIPS: smp-mt,smp-cmp: Enable all HW IRQs on secondary CPUs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi James,

On Fri, Jan 16, 2015 at 3:10 AM, James Hogan <james.hogan@xxxxxxxxxx> wrote:
> Commit 18743d2781d0 ("irqchip: mips-gic: Stop using per-platform mapping
> tables") in v3.19-rc1 changed the routing of IPIs through the GIC to go
> to the HW0 IRQ pin along with the rest of the GIC interrupts, rather
> than to HW1 and HW2 pins.
>
> This breaks SMP boot using the CMP or MT SMP implementations because HW0
> doesn't get unmasked when secondary CPUs are initialised so the IPIs
> will never interrupt secondary CPUs (nor any other interrupts routed
> through the GIC).
>
> Commit ff1e29ade4c6 ("MIPS: smp-cps: Enable all hardware interrupts on
> secondary CPUs") fixed this in advance for the CPS SMP implementation by
> unmasking all hardware interrupt lines for secondary CPUs, so lets do
> the same for the CMP and MT implementations.
>
> Fixes: 18743d2781d0 ("irqchip: mips-gic: Stop using per-platform mapping tables")
> Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
> Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
> Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
> Cc: Qais Yousef <qais.yousef@xxxxxxxxxx>
> Cc: linux-mips@xxxxxxxxxxxxxx

Reviewed-by: Andrew Bresticker <abrestic@xxxxxxxxxxxx>

> Note that CMP is still broken with Malta since the GIC driver now routes
> the local timer interrupt to a different IRQ pin to that expected by the
> CMP wait loop (see commit e9de688dac65 ("irqchip: mips-gic: Support
> local interrupts")), so the secondary CPU never completes its wait
> instruction to poll the LAUNCH_FGO flag, but that is a different issue.

I'm guessing this wait loop is in firmware?  Should the GIC just leave
the timer IRQ routing alone then?




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux