Some BCM6358 devices start with Core #1 instead of Core #0. Apart from that, SMP is restricted to 1 CPU since BCM6358 has a shared TLB, which makes it impossible for the current SMP support to start both CPUs. The problem is that smp_processor_id() returns 0 and then cpu_logical_map() converts that to 1, which accesses an uninitialized position of intc->cpus[], resulting in a kernel panic. Signed-off-by: Álvaro Fernández Rojas <noltari@xxxxxxxxx> --- drivers/irqchip/irq-bcm6345-l1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-bcm6345-l1.c b/drivers/irqchip/irq-bcm6345-l1.c index e3483789f4df..b2173ce4743d 100644 --- a/drivers/irqchip/irq-bcm6345-l1.c +++ b/drivers/irqchip/irq-bcm6345-l1.c @@ -121,7 +121,7 @@ static void bcm6345_l1_irq_handle(struct irq_desc *desc) unsigned int idx; #ifdef CONFIG_SMP - cpu = intc->cpus[cpu_logical_map(smp_processor_id())]; + cpu = intc->cpus[smp_processor_id()]; #else cpu = intc->cpus[0]; #endif -- 2.20.1