On Wed, Sep 07, 2011 at 11:25:29AM +0200, Thomas Gleixner wrote:
This smells badly like the problem we've seen on x86 before. And
looking at the arm SMP boot code:
asmlinkage void __cpuinit secondary_start_kernel(void)
{
.....
/*
* Give the platform a chance to do its own initialisation.
*/
platform_secondary_init(cpu);
/*
* Enable local interrupts.
*/
notify_cpu_starting(cpu);
local_irq_enable();
Here we enable interrupts, but the CPU is neither online nor active.
local_fiq_enable();
That's intentional. Some of the code below needs IRQs enabled.
I think we had this reported before and I got to the bottom of it - the
platform was doing something it shouldn't. I don't remember the details,
maybe when all the emails come through I can see the original bug report
I'll remember.